4

作成した Mat 形式を jpeg ファイルに書き込もうとしていますが、未処理の例外しか発生しません。ドキュメントから、それは言う

この関数を使用して保存できるのは、8 ビット (PNG、JPEG 2000、および TIFF の場合は 16 ビット符号なし (CV_16U)) のシングル チャネルまたは 3 チャネル ('BGR' チャネル順) の画像のみです。

そこで、以下のコードを使用してマットを作成しました。

Mat watermark(5,5,CV_16U);  
imwrite("C:\\watermark.jpg",watermark);

ただし、画像をjpegに書き込むことはできません。BMP 形式では問題なく動作しますが、JPG やその他の形式ではうまく動作しません。CV_16U または 8U に変換するように勧められましたが、うまく機能せず、C:\ ディレクトリへの書き込み権限があります。

手順がありませんか?または、OpenCV を使用して画像を JPG に保存する他の方法はありますか?

4

2 に答える 2

4

最新の opencv (v3.0) 以降と Windows x64 ビット バージョンを使用している場合、opencv の機能の一部がデバッグ モードで正しく動作しません...コードをリリース モードで実行する必要があり、すべてが完全に実行されます。

opencv3.1 と x64 ビットで見つかった問題 - デバッグ モード

  1. imwrite(filename, image) で例外が発生しました (読み取りアクセス違反)。
  2. haarCascade.detectMultiScale(...) は、多数のオブジェクトを検出します。

これらの問題を修正するには、アプリケーションをリリース モードで実行します。

デバッグモードでこれらの問題を解決する良い方法をまだ探しています。

于 2016-08-06T22:13:02.983 に答える