2

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 バージョンに基づいて正しいライブラリ名を使用していることを確認してください。

4

2 に答える 2

1

これを試して:

void    write(){
    char * outImage="C:/tmp/000014/outimage.jpg";
    Mat img = Mat(Size(imageWidth,imageHeight), CV_8UC1, Scalar(255));
    imwrite(out, img);
}

出力パス、imageWidth、imageHeight を確認してください。MoreOver 依存関係を確認します (Linux では libjpeg8 が必要です):

Linux の場合

sudo apt-get install libpng12-0 libpng12-dev libpng++-dev libpng3 libpnglite-dev libpngwriter0-dev libpngwriter0c2 zlib1g-dbg zlib1g zlib1g-dev pngtools libjasper-dev libjasper-runtime libjasper1 libjpeg8 libjpeg8-dbg libjpeg62 libjpeg62-dev libjpeg-progs libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools ffmpeg libavcodec-dev libavcodec52 libavformat52 libavformat-dev libswscale0 libswscale-dev openexr libopenexr6 libopenexr-dev

Windows の場合は、次のガイドに従ってください: http://docs.opencv.org/doc/tutorials/introduction/windows_install/windows_install.html

于 2013-05-23T16:16:19.787 に答える
1

OpenCV のリリースとデバッグ DLL を混同していないことを確認してください。さらに、x86 または x64 DLL が機能するかどうかを確認します。x64 マシンで x64 DLL がうまくいかないことがあります。理由はわかりませんが、x86 バージョンに切り替える必要がありました。

于 2013-05-24T11:17:53.873 に答える