Я хотел бы создать программу на C ++ с 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
чтобы получить нажатую клавишу вместо cin
, В качестве альтернативы, как сказано в комментариях сделать waitKey(1)
после imshow
,