La position de chaque pixel est exprimée par remappage: g (x, y) = f (h (x, y)) et h (x, y) est une fonction de méthode de mappage. Lorsque h (x, y) = (i.cols () - x, y), cela signifie que la déviation se produit dans la direction de l'axe x.
Fonction: imgproc.remap (Mat Src, Mat DST, MAT MAP1, MAT MAP2, INT INTERPOLATION, int BorderMode, scalaire BorderValue)
Description du paramètre:
SRC: image source
DST: image cible
Map1: il a deux objets possibles à représenter, l'un est la première carte représentant le point (x, y), et l'autre est la valeur x de type CV_16SC2, CV_32FC1 et CV_32FC2
MAP2: il a deux objets possibles à représenter. L'un est lorsque MAP1 représente la première carte du point (x, y), qui ne représente aucune valeur. L'autre est la valeur y de type CV_16UC1 et CV_32FC1
Interpolation: méthode d'interpolation, Inter_area ne prend pas en charge
BorderMode: mode limite, border_conant par défaut
BorderValue: la valeur utilisée lorsqu'il y a une frontière constante, par défaut est 0
Exemple de code:
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; // Valeurs de clés 1, 2, 3, 4 pour (int i = 0; i <src.Rows (); i ++) {for (int j = 0; j <src.cols (); j ++) {switch (key) {case 1: // remap 1 if (j> src.cols () * 0,25 && j <src.cols () * 0,75 & i> i * 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); } casser; cas 2: // remap 2 map_x.put (i, j, j); map_y.put (i, j, src.Rows () - i); casser; cas 3: // remap 3 map_x.put (i, j, src.cols () - j); map_y.put (i, j, i); casser; cas 4: // remap 4 map_x.put (i, j, src.cols () - j); map_y.put (i, j, src.Rows () - i); casser; par défaut: pause; }}} 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); } Image source:
La première cartographie:
La deuxième cartographie:
La troisième cartographie:
La quatrième cartographie:
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.