La posición de cada píxel se expresa mediante la reasignación: G (x, y) = F (H (x, y)), y H (x, y) es una función del método de mapeo. Cuando h (x, y) = (i.cols ()-x, y), significa que la desviación ocurre en la dirección del eje x.
Función: imgproc.remap (MAT SRC, MAT DST, MAT MAP1, MAT MAP2, INT Interpolation, Int BorderMode, BorderValue escalar)
Descripción del parámetro:
SRC: imagen de origen
DST: Imagen objetivo
MAP1: tiene dos objetos posibles para representar, uno es el primer mapa que representa el punto (x, y), y el otro es el valor x del tipo CV_16SC2, CV_32FC1 y CV_32FC2
MAP2: tiene dos objetos posibles para representar. Uno es cuando MAP1 representa el primer mapa del punto (x, y), que no representa ningún valor. El otro es el valor y del tipo CV_16UC1 y CV_32FC1
Interpolación: método de interpolación, Inter_area no admite
Bordermode: modo límite, predeterminado border_contant
BorderValue: el valor utilizado cuando hay un límite constante, el valor predeterminado es 0
Código de muestra:
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; // valores clave 1, 2, 3, 4 para (int i = 0; i <src.rows (); i ++) {for (int j = 0; j <src.cols (); j ++) {switch (key) {case 1: // remap 1 if (j> src.colss () * 0.25 && j <src.cols () * 0.75 && i ((j> src.cols () * 0.25 && j <src.cols () * 0.75 && i ((j> src.cols () * 0.25 && j <src.cols () * 0.75 && i ((j> src.cols () * 0.25 && j <src.cols () * 0.75 && i () () 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); } romper; caso 2: // remap 2 map_x.put (i, j, j); map_y.put (i, j, src.rows () - i); romper; caso 3: // remap 3 map_x.put (i, j, src.cols () - j); map_y.put (i, j, i); romper; caso 4: // remap 4 map_x.put (i, j, src.cols () - j); map_y.put (i, j, src.rows () - i); romper; predeterminado: ruptura; }}} Imgproc.remap (src, dst, map_x, map_y, imgproc.inter_linear, core.border_constant, nuevo escalar (0, 0, 0)); Imgcodecs.imwrite ("f: //dst.jpg", dst); } Imagen de origen:
El primer mapeo:
El segundo mapeo:
El tercer mapeo:
El cuarto mapeo:
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.