Я хотел бы создать программу на С++ с OpenCV, которая позволила бы мне постоянно запускать цикл, чтобы спросить пользователя, что делать с изображением. Например, пользователь может ввести определенное число для выполнения команды. Код, который у меня есть в качестве примера:
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()
. - person a-Jays   schedule 22.11.2014