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) を忘れていましたが、それがあったとしても、ループの先頭に戻って数値を入力すると、開かれたウィンドウが何らかの理由でクラッシュします。