จะใช้ตัวกรอง Sobel สำหรับการตรวจจับขอบโดยใช้หมอนได้อย่างไร?

Aug 08, 2025

ฝากข้อความ

การตรวจจับขอบเป็นเทคนิคพื้นฐานในการประมวลผลภาพที่ใช้เพื่อระบุขอบเขตของวัตถุภายในภาพ วิธีหนึ่งที่ได้รับความนิยมสำหรับการตรวจจับขอบคือตัวกรอง Sobel ซึ่งคำนวณการไล่ระดับสีของความเข้มของภาพ ในบล็อกนี้เราจะสำรวจวิธีการใช้ตัวกรอง Sobel สำหรับการตรวจจับขอบโดยใช้หมอนซึ่งเป็นไลบรารี Python ที่ทรงพลังสำหรับการประมวลผลภาพ ในฐานะซัพพลายเออร์หมอนเรารู้สึกตื่นเต้นที่จะแบ่งปันสิ่งนี้ใน - คู่มือเชิงลึกกับคุณ

ทำความเข้าใจกับตัวกรอง Sobel

ตัวกรอง Sobel เป็นตัวดำเนินการแยกความแตกต่างที่ไม่ต่อเนื่องซึ่งคำนวณการประมาณของการไล่ระดับสีของฟังก์ชันความเข้มของภาพ ประกอบด้วยเมล็ด 3x3 สองตัวหนึ่งอันสำหรับตรวจจับขอบแนวนอนและอีกอันสำหรับขอบแนวตั้ง

เคอร์เนล Sobel แนวนอน (G_X) คือ:
-
g_x =
\ เริ่ม {bmatrix}
-1 & 0 & 1 \
-2 & 0 & 2 \
-1 & 0 & 1
\ end {bmatrix}
-

เคอร์เนลแนวตั้ง Sobel (G_Y) คือ:
-
g_y =
\ เริ่ม {bmatrix}
-1 & -2 & -1 \
0 & 0 & 0 \
1 & 2 & 1
\ end {bmatrix}
-

เมื่อเมล็ดเหล่านี้มีความโน้มเอียงด้วยภาพพวกเขาจะคำนวณอนุพันธ์แนวนอนและแนวดิ่งแรกของภาพตามลำดับ ขนาดของการไล่ระดับสีนั้นสามารถคำนวณได้โดยใช้สูตร (\ sqrt {g_x^2 + g_y^2}) และทิศทางของการไล่ระดับสีได้รับโดย (\ arctan (\ frac {g_y} {g_x}))

ข้อกำหนดเบื้องต้น

ก่อนที่เราจะเริ่มตรวจสอบให้แน่ใจว่าคุณติดตั้งหมอนแล้ว คุณสามารถติดตั้งได้โดยใช้ปิ๊ก-

PIP ติดตั้งหมอน

ใช้ตัวกรอง Sobel กับหมอน

เริ่มต้นด้วยการนำเข้าไลบรารีที่จำเป็นและโหลดรูปภาพ:

จาก Image Image Image ImageFilter นำเข้า numpy เป็น np # โหลด image image = image.open ('your_image.jpg'). แปลง ('l') # convert เป็น Grayscale

ที่นี่เราแปลงภาพเป็นสีเทาเพราะตัวกรอง Sobel ทำงานบนภาพช่องเดี่ยว

ต่อไปเราจะกำหนดเมล็ด Sobel และโน้มน้าวพวกเขาด้วยภาพ:

# define sobel kernels sobel_x = np.array ([[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]] sobel_y = np.array ([-1, -2, -1], [0, 0, 0], [1, 2, 1]) โน้มน้าวภาพด้วยเมล็ด sobel g_x = np.zeros_like (image_array) g_y = np.zeros_like (image_array) แถว, cols = image_array.shape สำหรับ i ในช่วง (1, แถว - 1): สำหรับ j ในช่วง (1, cols - 1): g_x 1: i + 2, j - 1: j + 2]) g_y [i, j] = np.sum (sobel_y * image_array [i - 1: i + 2, j - 1: j + 2])

หลังจากคำนวณ (g_x) และ (g_y) เราสามารถคำนวณขนาดของการไล่ระดับสี:

Memory Foam PillowHousehold Pillow

# คำนวณขนาดของการไล่ระดับสี gradient_mignitude = np.sqrt (g_x ** 2 + g_y ** 2) # ปกติทำให้ขนาดการไล่ระดับสีเป็นช่วง [0, 255] gradient_migitude = (gradient_magnitude / np.max (gradient_magnitude) edge_image = image.fromarray (gradient_mignitude) # บันทึกขอบ - ตรวจพบ image edge_image.save ('edge_detected_image.jpg')

ใช้หมอนที่สร้างขึ้น - ในตัวกรอง

หมอนยังมีตัวกรองที่สามารถใช้ในการตรวจจับขอบได้ ตัวอย่างเช่นไฟล์find_edgesกรอง:

# ใช้หมอนที่สร้างขึ้น - ในตัวกรองการตรวจจับขอบ edge_image_builtin = image.filter (imagefilter.find_edges) edge_image_builtin.save ('edge_detected_image_builtin.jpg')

วิธีนี้ง่ายกว่า แต่อาจไม่ยืดหยุ่นเท่ากับการใช้ตัวกรอง Sobel ตั้งแต่เริ่มต้น

การเปรียบเทียบผลลัพธ์

เมื่อเปรียบเทียบผลลัพธ์ของตัวกรอง Sobel ที่กำหนดเองและใช้งานfind_edgesตัวกรองคุณจะสังเกตเห็นว่าการใช้งานที่กำหนดเองช่วยให้คุณควบคุมกระบวนการตรวจจับขอบได้มากขึ้น คุณสามารถปรับเมล็ดได้วิธีการคำนวณขนาดการไล่ระดับสีและพารามิเตอร์อื่น ๆ ตามความต้องการเฉพาะของคุณ

การใช้งานจริงของการตรวจจับขอบ

การตรวจจับขอบมีการใช้งานจริงมากมาย ในการมองเห็นคอมพิวเตอร์ใช้สำหรับการจดจำวัตถุการแบ่งส่วนภาพและการตรวจจับการเคลื่อนไหว ตัวอย่างเช่นในระบบรถขับเคลื่อนด้วยตนเองการตรวจจับขอบสามารถช่วยระบุขอบเขตของยานพาหนะอื่น ๆ คนเดินเท้าและป้ายถนน

ในด้านการถ่ายภาพทางการแพทย์สามารถใช้การตรวจจับขอบเพื่อระบุขอบเขตของอวัยวะและเนื้องอกในรังสี X - Rays, MRIs และ CT ข้อมูลนี้มีความสำคัญสำหรับการวินิจฉัยและการวางแผนการรักษา

ผลิตภัณฑ์หมอนของเรา

ในฐานะผู้จัดหาหมอนเรานำเสนอหมอนคุณภาพสูงที่หลากหลายเพื่อตอบสนองความต้องการของคุณ ไม่ว่าคุณจะกำลังมองหาไฟล์หมอนเมมโมรี่โฟมที่ให้การสนับสนุนและความสะดวกสบายที่ยอดเยี่ยมหรือหมอนในครัวเรือนสำหรับการใช้งานในชีวิตประจำวันเรามีคุณครอบคลุม หมอนของเราทำจากวัสดุที่ดีที่สุดและได้รับการออกแบบมาเพื่อให้แน่ใจว่านอนหลับฝันดี

ติดต่อเราเพื่อรับการจัดซื้อ

หากคุณสนใจที่จะซื้อหมอนของเราหรือมีคำถามใด ๆ เกี่ยวกับผลิตภัณฑ์ของเราเราขอแนะนำให้คุณติดต่อเราเพื่อการอภิปรายการจัดซื้อจัดจ้าง เรามุ่งมั่นที่จะให้ผลิตภัณฑ์และบริการที่ดีที่สุดแก่คุณ ทีมผู้เชี่ยวชาญของเราพร้อมที่จะช่วยเหลือคุณในการค้นหาหมอนที่สมบูรณ์แบบสำหรับความต้องการของคุณ

การอ้างอิง

  • Gonzalez, RC, & Woods, RE (2008) การประมวลผลภาพดิจิตอล เพียร์สัน
  • เอกสารอย่างเป็นทางการของหมอน: https://pillow.readthedocs.io/en/stable/

ส่งคำถาม