2013-12-13 14 views
12

上の画像をレンダリングないが、どうやらライブラリが動作しているようです最近のOpenCV 2.4.7のコンパイル済みのバージョンを入手し、正常にVisual Studioに2010OpenCVの関数imshowは、私はOpenCVのに新しいです画面

それを統合することができたしていますしかし、imshowを使って画像を表示しようとすると、ウィンドウが表示されますが、画像は表示されません。

{ 
    cv::Mat image = cv::imread("F:/office_Renzym/test3.jpg",CV_LOAD_IMAGE_UNCHANGED); 

    if(image.empty()) 
    { 
     cout<<"image not loaded"; 
    } 
    else 
    { 
     cv::namedWindow("test", CV_WINDOW_AUTOSIZE); 
     cv::imshow("test",image); 
    } 
} 

ご協力いただければ幸いです。

+0

あなたは 'imshow'後に[waitKey](http://docs.opencv.org/modules/highgui/doc/user_interface.html#waitkey)への呼び出しを持っていますか? –

+0

私は質問に画像を含めるだろうが、私は最近ここに自分自身を登録しているので、まだ画像を含めることはできない。 – Usama

+0

はい、waitKeyを試してもまだ成功していない – Usama

答えて

17

あなたが持っている必要があります。

cv::waitKey(0); 

の代わりに:

system("pause"); 

後者はうまく動作しません。 OpenCVはメッセージを表示し更新するためにメッセージをポンピングする必要があり、その中にはwaitKeyという機能があります。ドキュメントが言うように

、あなたがのHighGUIウィンドウが開いている場合waitKeyにのみ動作し、あなたのコードでは、あなたはおそらくこれを行う必要があるので:ケースで

cv::Mat image = cv::imread("F:/office_Renzym/test3.jpg",CV_LOAD_IMAGE_UNCHANGED); 

if(image.empty()) 
{ 
    cout<<"image not loaded"; 
} 
else 
{ 
    cv::namedWindow("test", CV_WINDOW_AUTOSIZE); 
    cv::imshow("test",image); 
    cv::waitKey(0); 
} 

を画像形式に問題があります、あなたはこのようにロードしてみてください:

cv::Mat image = cv::imread("F:/office_Renzym/test3.jpg",CV_LOAD_IMAGE_COLOR); 
+3

あなたに感謝することができます – Usama

1

私はcv::namedWindow文を削除し、cv:imshow文の後

cv::waitKey(); 

を追加することをお勧めします。また、ウィンドウの寸法が正しいかどうかを確認することもできます。

+0

あなたはまだ成功しなかったと言ったようにしている – Usama

+0

上記の答えから、問題は画像形式になっているようです。 – Totoro

+0

いいえ、私は最初にwaitKey(0)を使用していませんでした – Usama

関連する問題