Mat オブジェクトを別のサイズにスケーリングできるメソッドを見つけようとしてイライラしています。お願いします、誰かこれを手伝ってくれませんか?
私のプロジェクトでは Java ラッパーを使用していますが、提供された回答が C++ ネイティブ OpenCV ライブラリに対するものであれば幸いです。
サイズ変更によって画像のスケーリングを意味する場合は、次のように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())));
resize()
機能を使用でき ます
新しい次元の新しいマット結果を作成します
resize(input // input image
result // result image
result.size() // new dimensions
0,
0,
INTER_CUBIC // interpolation method
);
より多くの補間方法を知るには、このドキュメントを確認できます: geometry_transformations.html#resize