5

Mat オブジェクトを別のサイズにスケーリングできるメソッドを見つけようとしてイライラしています。お願いします、誰かこれを手伝ってくれませんか?

私のプロジェクトでは Java ラッパーを使用していますが、提供された回答が C++ ネイティブ OpenCV ライブラリに対するものであれば幸いです。

4

2 に答える 2

11

サイズ変更によって画像のスケーリングを意味する場合は、次のようにresize()関数を使用します。

resize(src, dst, dst.size(), 0, 0, interpolation);

それ以外の場合は、Mat の行数を変更する必要がある場合は、Mat::reshape()関数を使用します。reshape が新しい Mat ヘッダーを返すことに注意してください。

cv::Mat dst = src.reshape ( 0, newRowVal );

最後に、任意に Mat の形状を変更したい (行と列を変更する) 場合は、おそらく目的の寸法で新しい Mat を定義し、それに src Mat をコピーする必要があります。

Mat dst(newRowVal, newColVal, src.type());
src.setTo(0);
src.copyTo(dst(Rect(Point(0, 0), src.size())));
于 2013-03-27T15:57:43.463 に答える
10

resize()機能を使用でき ます

新しい次元の新しいマット結果を作成します

resize(input             // input image 
       result            // result image
       result.size()     // new dimensions
       0, 
       0, 
       INTER_CUBIC       // interpolation method
      );

より多くの補間方法を知るには、このドキュメントを確認できます: geometry_transformations.html#resize

于 2013-03-27T16:14:04.767 に答える