Posisi setiap piksel diekspresikan dengan memetakan ulang: g (x, y) = f (h (x, y)), dan h (x, y) adalah fungsi metode pemetaan. Ketika h (x, y) = (i.cols ()-x, y), itu berarti bahwa defleksi terjadi dalam arah sumbu x.
Fungsi: imgproc.remap (Mat Src, Mat DST, Mat MAP1, Mat MAP2, interpolasi int, int batas, nilai batas skalar)
Deskripsi Parameter:
SRC: Gambar sumber
DST: Gambar target
MAP1: Ia memiliki dua kemungkinan objek untuk diwakili, satu adalah peta pertama yang mewakili titik (x, y), dan yang lainnya adalah nilai x tipe CV_16SC2, CV_32FC1, dan CV_32FC2
MAP2: Ini memiliki dua kemungkinan objek untuk diwakili. Salah satunya adalah ketika MAP1 mewakili peta titik pertama (x, y), yang tidak mewakili nilai apa pun. Yang lainnya adalah nilai y tipe CV_16UC1 dan CV_32FC1
Interpolasi: Metode Interpolasi, Inter_area tidak mendukung
BorderMode: Mode Batas, Default Border_Contant
BorderValue: Nilai yang digunakan saat ada batas konstan, default adalah 0
Kode contoh:
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 = MAT baru (src.size (), cvtype.cv_32fc1); Mat MAP_Y = MAT baru (src.size (), cvtype.cv_32fc1); int kunci = 1; // Nilai kunci 1, 2, 3, 4 untuk (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 <& J <& J <& J <& J <& J <& J <& J <& J <& J <& J <& J <& J <& & J <& J <& J <& J <& J <& & 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); } merusak; case 2: // remap 2 map_x.put (i, j, j); map_y.put (i, j, src.rows () - i); merusak; Kasus 3: // Remap 3 map_x.put (i, j, src.cols () - j); map_y.put (i, j, i); merusak; Kasus 4: // Remap 4 map_x.put (i, j, src.cols () - j); map_y.put (i, j, src.rows () - i); merusak; default: break; }}} Imgproc.remap (src, dst, map_x, map_y, imgproc.inter_linear, core.border_constant, skalar baru (0, 0, 0)); Imgcodecs.imwrite ("f: //dst.jpg", dst); } Gambar Sumber:
Pemetaan pertama:
Pemetaan kedua:
Pemetaan ketiga:
Pemetaan keempat:
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.