我想用 OpenCV 创建一个 C++ 程序,它可以让我连续运行一个循环来询问用户如何处理图像。例如,用户可以输入特定的数字来执行命令。我作为示例的代码是:
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) 尽管即使我确实有,当我回到循环的开头输入一个数字时,打开的窗口由于某种原因崩溃了。