Положение каждого пикселя выражается путем перенастроения: 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, скалярное пограничное значение)
Описание параметра:
SRC: исходное изображение
DST: Целевое изображение
MAP1: У него есть два возможных объекта, которые для представления, один - это первая карта, представляющая точку (x, y), а другой - x значение типа CV_16SC2, CV_32FC1 и CV_32FC2
MAP2: у него есть два возможных объекта для представления. Один из них, когда MAP1 представляет первую карту точки (x, y), которая не представляет какого -либо значения. Другой - значение y типа CV_16UC1 и CV_32FC1
Интерполяция: метод интерполяции, 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 для (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.0. 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); перерыв; по умолчанию: перерыв; }}} Imgproc.remap (src, dst, map_x, map_y, imgproc.inter_lineear, core.border_constant, новый скаляр (0, 0, 0)); Imgcodecs.imwrite ("f: //dst.jpg", dst); } Изображение источника:
Первое отображение:
Второе отображение:
Третье отображение:
Четвертое отображение:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.