ใน OpenCV ตัวกรอง Scharr มีอยู่ร่วมกับการทำงานของผู้ให้บริการ Sobel เมื่อเคอร์เนล Sobel เป็น 3 ผลลัพธ์อาจทำให้เกิดข้อผิดพลาดที่ชัดเจนมากขึ้น ในการตอบสนองต่อปัญหานี้ OpenCV ให้ฟังก์ชัน Scharr ฟังก์ชั่นนี้มีเป้าหมายเฉพาะเมล็ดที่มีขนาด 3 และอัตราการคำนวณนั้นเร็วเท่ากับฟังก์ชั่น Sobel และผลลัพธ์ที่แม่นยำยิ่งขึ้น แต่ความต้านทานเสียงไม่ดีเท่าฟังก์ชั่น Sobel
ใช้ตัวกรอง Scharr เพื่อคำนวณความแตกต่างของภาพในทิศทาง x หรือ y และตัวแปรพารามิเตอร์ของมันจะเหมือนกับ Sobel
ฟังก์ชั่น: imgproc.scharr (Mat Src, Mat Dst, int ddepth, int dx, int dy, double scale, double delta, int bordertype)
คำอธิบายพารามิเตอร์:
SRC: ภาพต้นทาง
DST: ภาพผลการตรวจจับ
DDEPTH: ความลึกของภาพเอาต์พุต
DX: ลำดับความแตกต่างในทิศทาง x
DY: ลำดับความแตกต่างในทิศทาง y
สเกล: ปัจจัยการปรับขนาด
เดลต้า: ค่าเดลต้าเป็นตัวเลือกก่อนที่ผลลัพธ์จะถูกเก็บไว้ในภาพเอาต์พุตค่าเริ่มต้นคือ 0
BorderType: โหมดขอบเขต, ค่าเริ่มต้น border_default
รหัสตัวอย่าง:
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {system.loadLibrary (core.native_library_name); mat src = imgcodecs.imread ("f: //2011031213205880528.jpg"); mat dst = src.clone (); mat dstx = src.clone (); mat dsty = src.clone (); imgproc.gaussianblur (SRC, DST, ขนาดใหม่ (3, 3), 0); imgproc.cvtcolor (DST, DST, IMGPROC.COLOR_RGB2GRAY); imgproc.scharr (dst, dstx, -1, 1, 0, 1, 0, core.border_default); imgcodecs.imwrite ("f: //dstx.jpg", dstx); imgproc.scharr (dst, dsty, -1, 0, 1, 1, 0, core.border_default); imgcodecs.imwrite ("f: //dsty.jpg", dsty); core.addweighted (DSTX, 0.5, DSTY, 0.5, 0, DST); imgcodecs.imwrite ("f: //dst.jpg", dst); - ภาพต้นทาง:
Scharr ในทิศทาง x:
Scharr ในทิศทาง y:
หลังจากรวมการไล่ระดับสี:
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น