1

アンドロイドでは、次のコードを使用してマットをスケーリングしようとしています。

Mat destMat = new Mat(); 
Size newSize=new Size(output.width()/6.0f, output.height()/6.0f); 
Imgproc.resize(output, destMat, newSize, 0, 0, Imgproc.INTER_CUBIC);

サイズ変更メソッドを実行しようとすると、次の例外が発生します。私のコードは onCameraFrame() にあります。

MatToBitmap が cv::Exception をキャッチしました: /home/reports/ci/slave_desktop/50-SDK/opencv/modules/java/generator/src/cpp/utils.cpp:97: エラー: (-215) src.dims == 2 && info.height == (uint32_t)src.rows && info.width == (uint32_t)src.cols in function void Java_org_opencv_android_Utils_nMatToBitmap2(JNIEnv*, jclass, jlong​​, jobject, jboolean)

4

1 に答える 1

0

変数 'newSize' は、実際には destMat の元のサイズが必要です。fx および fy パラメータを使用して縮小できます。javadoc から:

関数 resize は、イメージ src を指定されたサイズまで縮小または拡大します。初期の dst タイプまたはサイズは考慮されないことに注意してください。代わりに、サイズとタイプは src、dsize、fx、および fy から派生します。

後で:

// 明示的に指定 dsize=dst.size(); fx と fy はそれから計算されます。

于 2014-05-30T03:30:22.617 に答える