0
我想用OpenCV創建一個C++程序,這將允許我連續運行一個循環來詢問用戶如何處理圖像。例如,用戶可以輸入特定的數字來執行命令。我有作爲示例的代碼是:OpenCV imshow()在一個循環顯示圖像
int main()
{
int choose = -1;
for (;;)
{
cin >> choose;
if (choose == 0)
{
Mat img = imread(fileName1);//, CV_LOAD_IMAGE_GRAYSCALE);
if (!img.data)
{
cout << "Unable to load file." << endl;
}
else
{
namedWindow(fileName1, 1);
imshow(fileName1, img);
}
}
else if (choose == 1)
{
Mat img = imread(fileName2, CV_LOAD_IMAGE_GRAYSCALE);
if (!img.data)
{
cout << "Unable to load file." << endl;
}
else
{
namedWindow(fileName2, 1);
imshow(fileName2, img);
}
}
}
waitKey(0);
return 0;
}
其中圖像是應該加載該窗口只是充滿灰色。當圖像不在循環中時,我無法加載圖像。任何人都可以幫助我弄清楚爲什麼這會導致問題嗎?
編輯:當然,忘記了waitKey(0),雖然即使我確實有這種情況,當我回到開始的循環輸入一個數字時,由於某種原因,打開的窗口崩潰。
你需要一個waitKey();在imshow()之後(典型的noob陷阱) – berak 2014-11-22 11:36:32
我不確定,但我認爲你的waitKey不是在for循環中,而你必須有另一個值,如0 – Engine 2014-11-22 11:39:09
'waitKey()'必須遵循'imshow ()'。 – 2014-11-22 14:20:41