2011-09-12 5 views
2

を変え、私はIplImageへのサイズを変更し、異なる深さのCvMatのにそれを変換する必要があり、これは私がこれまでに書いたコードです宛先は64Fビットです。 cvScaleは、同じサイズの画像間のスケーリングのみを行います。したがって、一時イメージです。 cvResizeを呼び出すときは、画像のサイズを変更し、その深さ

プログラムは、以下の例外を上昇:、512×384:

OpenCV Error: Assertion failed (func != 0) in resize, file /tmp/buildd/opencv-2.1.0/src/cv/cvimgwarp.cpp, line 1488 
terminate called after throwing an instance of 'cv::Exception' 
what(): /tmp/buildd/opencv-2.1.0/src/cv/cvimgwarp.cpp:1488: error: (-215) func != 0 in function resize 

私は理由を理解することはできません、私はイメージが

  • SRCを課した条件を尊重することを確認しました8深さ
  • TMP:512×384、64深
  • DST:64×64、64深

手がかりはありますか? ありがとうございます

答えて

1

あなたが不具合を発見した可能性があります。私は私の最後にもそれを再現することができます(Ubuntu 64-bit、OpenCV-2.1.0)。 32ビット浮動小数点精度を使用すると動作しますが、64ビット浮動小数点数ではクラッシュします。私の推奨はあなたのOpenCVを最新のバージョンに更新し、問題がなくなるかどうかを確認することです。そうでない場合は、ライブラリをデバッグモードでビルドし、アサーションをスローしている関数をステップ実行します。 cvimgwarp.cppの犯人ソースを見ると、宛先画像に使用する補間方法を見つけることができないように見えます。

+0

OpenCVの 'resize'は入力と出力の深度(数値型)と補間タイプの特定の組み合わせをサポートしていないためです。 – rwong

関連する問題