数字に基づいて画像を表示しようとしていますが、手動で[0または1]を入力してから、表示するフォルダの20画像から画像をランダムに選択します。のみにかかわらず、画像のパスの新たな価値を、選択した最初の画像をレンダリングする関数imshow(): はここimshow()does notはその内容を更新します。C++
stringstream ss;
string fullfileName;
int x;
int pic = 0;
namedWindow("MyWindow", CV_WINDOW_AUTOSIZE);
while (1)
{
Mat img;
pic = 0;
cin >> x;
if (x == 0)
{
pic = rand() % ((10 - 1) + 1) + 1;
}
else if (x == 1)
{
pic = rand() % ((20 - 11) + 1) + 11;
}
ss << "C:/Users/abed/Desktop/Opencv/test/" << pic << ".jpg";
ss >> fullfileName;
img = imread(fullfileName, CV_LOAD_IMAGE_UNCHANGED);
imshow("MyWindow", img);
char key = (char)waitKey(20);
if (key == 27)
break;
}
return 0;
私の問題があるコードです。 ありがとうございます。
パスが変更されていることを確認しましたか?また、すべての画像をロードできますか? –
はい、私はいくつかの "cout"を入れて、変更があるかどうかを確認しました。すべて変更され、画像へのパスが正しいので、すべてのIMshow()ビューが読み込まれ、 –