0

次のJavaOpenCVコード:

IplImage image = cvCreateImage(cvSize(100, 100), IPL_DEPTH_8U, 3);
cvSaveImage("d:/tmp/test.png", image);

次のイメージを作成します。

作成した画像

これは、クリアされていないバッファまたはいくつかのポインタの論理ミスのようです。最初にcvCreateImageを呼び出した後、画像をクリアする必要がありますか?バッファをクリアする方法は?

4

2 に答える 2

0

C コードを調べると、割り当てられた配列をクリアするコードが見つかりません。ランダムなデータが含まれているだけです。

すべてのピクセルを単一の値に設定する Java 呼び出しは次のとおりです。

cvSet(image, CV_RGB(0, 0, 0));

データをクリアするのは発信者の責任であることをドキュメントに記載する必要があると思います。私たち Java 関係者は、コンストラクターがバッファーをクリアすることに慣れていますが、それが不必要な作業になる場合があることは理解しています。

于 2013-03-11T07:27:32.530 に答える