各ピクセルの位置は、再マッピング:g(x、y)= f(h(x、y))、およびh(x、y)はマッピングメソッド関数です。 h(x、y)=(i.cols() - x、y)の場合、それはx軸方向に偏向が発生することを意味します。
関数:IMGPROC.REMAP(MAT SRC、MAT DST、MAT MAP1、MAT MAP2、INT INTERPOLATION、INT BORDERMODE、SCALAR BORDERVALUE)
パラメーター説明:
SRC:ソース画像
DST:ターゲット画像
MAP1:表現する可能性のある2つのオブジェクトがあります。1つはポイント(x、y)を表す最初のマップであり、もう1つはタイプCV_16SC2、CV_32FC1、およびCV_32FC2のx値です。
MAP2:表現する2つのオブジェクトがあります。 1つは、MAP1がポイント(x、y)の最初のマップを表す場合ですが、これは値を表しません。もう1つはタイプCV_16UC1およびCV_32FC1のY値です
補間:補間法、Inter_Areaはサポートしていません
bordermode:境界モード、デフォルトのborder_contant
bordervalue:境界が一定の場合に使用される値、デフォルトは0です
サンプルコード:
public static void main(string [] args){system.loadLibrary(core.native_library_name); mat src = imgcodecs.imread( "f://t0105b07b97736d453d.jpg"); mat dst = src.clone(); MAT MAP_X = new Mat(src.size()、cvtype.cv_32fc1); MAT MAP_Y = new MAT(src.size()、cvtype.cv_32fc1); int key = 1; //キー値1、2、3、4 for src.rows() * 0.25 && i <src.rows() * 0.75){map_x.put(i、j、2 *(j -src.cols() * 0.25) + 0.5); map_y.put(i、j、2 *(i -src.rows() * 0.25) + 0.5); } else {map_x.put(i、j、0.0); map_y.put(i、j、0.0); } 壊す;ケース2:// Remap 2 Map_x.put(I、J、J); map_y.put(i、j、src.rows() - i);壊す;ケース3:// Remap 3 Map_x.put(i、j、src.cols() - j); map_y.put(i、j、i);壊す;ケース4:// Remap 4 Map_x.put(i、j、src.cols() - j); map_y.put(i、j、src.rows() - i);壊す;デフォルト:break; }}} imgproc.remap(src、dst、map_x、map_y、imgproc.inter_linear、core.border_constant、new Scalar(0、0、0)); imgcodecs.imwrite( "f://dst.jpg"、dst); }ソース画像:
最初のマッピング:
2番目のマッピング:
3番目のマッピング:
4番目のマッピング:
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。