มีความเป็นไปได้ในการตรวจจับขอบจำนวนมาก แต่ตัวอย่าง 3 ตัวอย่างที่คุณพูดถึงมี 3 ประเภทที่แตกต่างกัน
สิ่งนี้ใกล้เคียงกับอนุพันธ์อันดับหนึ่ง ให้ extrema ที่ตำแหน่งการไล่ระดับสี 0 โดยที่ไม่มีการไล่ระดับสี ใน 1D มันคือ = [ - 101]
- smooth edge => ท้องถิ่นต่ำสุดหรือสูงสุดขึ้นอยู่กับสัญญาณขึ้นหรือลง
- 1 pixel line => 0 ที่บรรทัดนั้นโดยมี extrema ท้องถิ่น (มีเครื่องหมายต่างกัน) ติดกับมัน ใน 1D มันคือ = [ 1- 21]
มีทางเลือกอื่น ๆ ให้กับ Sobel ซึ่งมี +/- ในลักษณะเดียวกัน ในหน้าRoberts Crossบนวิกิพีเดียคุณสามารถค้นหาการเปรียบเทียบของบางรายการได้
สิ่งนี้ใกล้เคียงกับอนุพันธ์ลำดับที่สอง ให้ 0 ที่ตำแหน่งการไล่ระดับสีและ 0 ที่ไม่มีการไล่ระดับสี มันให้ extrema ที่ไล่ระดับสีอีกต่อไป
- smooth edge => 0 ตามขอบ, extrema ท้องถิ่นที่จุดเริ่ม / หยุดของ edge
- 1 pixel line => a extremum "double" ที่บรรทัดโดยมี extrema "Normal" ที่มีเครื่องหมายต่างกันติดกับมัน
เอฟเฟกต์ของทั้งสองนี้ต่อขอบประเภทต่าง ๆ สามารถมองเห็นได้ดีที่สุด:
นี่ไม่ใช่ตัวดำเนินการอย่างง่าย แต่เป็นวิธีการหลายขั้นตอนซึ่งใช้ Sobel เป็นหนึ่งในขั้นตอน ในกรณีที่ Sobel และ Laplace ให้ผลลัพธ์สีเทา / จุดลอยตัวซึ่งคุณจำเป็นต้อง จำกัด ตัวเองอัลกอริทึม Canny มีการนวดแบบสมาร์ทเป็นขั้นตอนหนึ่งดังนั้นคุณจะได้ผลลัพธ์เป็นไบนารีใช่ / ไม่ใช่ นอกจากนี้บนขอบที่ราบเรียบคุณอาจพบว่ามีเพียง 1 บรรทัดอยู่ตรงกลางของการไล่ระดับสี