ตำแหน่งของแต่ละพิกเซลจะแสดงโดยการแมป: 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, Int BorderMode, Scalar BorderValue)
คำอธิบายพารามิเตอร์:
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
รหัสตัวอย่าง:
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {system.loadLibrary (core.native_library_name); mat src = imgcodecs.imread ("f: //t0105b07b97736d453d.jpg"); mat dst = src.clone (); MAT MAP_X = MAT ใหม่ (SRC.SIZE (), CVTYPE.CV_32FC1); mat map_y = mat ใหม่ (src.size (), cvtype.cv_32fc1); int key = 1; // ค่าคีย์ 1, 2, 3, 4 สำหรับ (int i = 0; i <src.rows (); i ++) {สำหรับ (int j = 0; j <src.cols (); j ++) {สวิตช์ (คีย์) {กรณี 1: // แมป 1 ถ้า (j> src.cols () 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: // แมป 2 map_x.put (i, j, j); map_y.put (i, j, src.rows () - i); หยุดพัก; กรณีที่ 3: // รีแม็ก 3 map_x.put (i, j, src.cols () - j); map_y.put (i, j, i); หยุดพัก; กรณีที่ 4: // แมป 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, SCALAR ใหม่ (0, 0, 0)); imgcodecs.imwrite ("f: //dst.jpg", dst); - ภาพต้นทาง:
การทำแผนที่ครั้งแรก:
การทำแผนที่ครั้งที่สอง:
การทำแผนที่ครั้งที่สาม:
การทำแผนที่ครั้งที่สี่:
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น