私はopenCVを初めて使用し、最近コンパイル済みバージョンのopenCV 2.4.7を入手して、それをVisual Studio 2010と正常に統合することができました。
どうやらライブラリは正常に動作しているようですが、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);
}
}
任意の助けをいただければ幸いです。
絶対必要です:
cv::waitKey(0);
の代わりに:
system("pause");
後者は機能しません。 OpenCVは、ウィンドウを表示および更新するためにメッセージをポンプする必要があり、そのwaitKey
関数内には、そのためのすべてのメカニズムがあります。
ドキュメンテーションが言うように、waitKey
はHighGUIウィンドウを開いている場合にのみ機能するため、コードではおそらくこれを行う必要があります:
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);
cv::namedWindow
ステートメントを削除して、
cv::waitKey();
cv:imshow
ステートメントの後。ウィンドウの寸法が正しいかどうかを確認することもできます。