opencv でイメージを作成して書き込むための次のコードがあります。
char * outImage="C:/tmp/000014/outimage.jpg";
Mat gray_image(imageWidth,imageHeight, CV_8UC1, Scalar(255));
imwrite( outImage, gray_image );
しかし、このコードを実行しているときに、ファイル拡張子が不明であるため、iwrite で画像を書き込めないというエラーが発生します。
このコードの何が問題になっていますか?
編集1
コードまたはインストールに問題があることを確認するためにコードを変更しました。だから私は今このコードを持っています
Mat x=imread("C:/tmp/a.jpg");
imshow("Image", x);
waitKey(0);
ファイル c:/tmp/a.jpg が存在することは確かです。
アプリケーションを実行すると、次のエラーが発生します。
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in unknown function, file C:\slave\builds\WinInstallerMegaPack\src\opencv\modules\core\src\array.cpp, line 2482
C:\slave\builds\WinInstallerMegaPack\src\opencv\modules\core\src\array.cpp:2482: error: (-206) Unrecognized or unsupported array type
この回答に従って、システムに OpenCV をインストールしました (インストール中に vc10 の代わりに vc11 を使用します) Visual C++ 2010 Express での OpenCV 2.4.3 のインストール
編集 2
問題は、デバッグ ライブラリとリリース ライブラリを混在させたことでした。
リリースには、末尾に d がないリリース ライブラリを使用します (たとえば、opencv_calib3d243d.lib の代わりに opencv_calib3d243.lib を使用します)。
デバッグには、opencv_calib3d243d.lib のように末尾に d があるデバッグ ライブラリを使用します。
opencv 2.4.5 の場合は opencv_calib3d245d.lib など、使用している opencv バージョンに基づいて正しいライブラリ名を使用していることを確認してください。