1

関数 imwrite を使用して Mat を画像ファイルに書き込むことができません。BMP 形式に書き込もうとすると問題なく動作しますが、他の形式に書き込もうとすると未処理の例外が発生します。

        merge(yuv_channels,3,resImg);
        imshow("Result",resImg);
        imwrite("C:\\result.jpg",resImg);

上記のコードは、 jpg に保存するための私の試みです。

        merge(yuv_channels,3,resImg);
        imshow("Result",resImg);
        imwrite("C:\\result.bmp",resImg);

ただし、拡張子をbmpに変更すると正常に動作します。

どんな助けでも大歓迎です。ありがとうございました。

4

1 に答える 1

1

resImg のコンテンツの形式が正しくない可能性があります。PNG、JPEG 2000、および TIFF の場合は、16 ビット符号なし (CV_16U) のみ。形式、深さ、またはチャネルの順序が異なる場合は、 Mat::convertTo() および cvtColor() を使用して変換してから保存してください。http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html?highlight=imwrite#imwriteを参照してください。

于 2013-01-04T04:35:44.730 に答える