Canny edge detection
Canny edge detection เป็นการหาเส้นรอบวัตถุที่อยู่ในภาพ โดยจะทำการแปลงภาพสีเทาเป็นภาพไบนารีของเส้นรอบวัตถุและมีอัลกอริทึมหลายขั้นตอนในการหาเส้นรอบวัตถุ เนื่องจากขอบภาพเกิดจากความแตกต่างของความเข้มแสงจากจุดหนึ่งไปยังอีกจุดหนึ่ง หากความต่างนี้มีค่ามาก จะทำให้เห็นขอบภาพได้อย่างชัดเจน แต่ถ้าความต่างนี้มีค่าน้อย จะทำให้เห็นขอบภาพได้ไม่ชัดเจน
$ cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
Parameters:
image => ภาพสีเทาที่จะนำมาใช้หาเส้นขอบวัตถุ
threshold1 => เกณฑ์ค่าพิกเซลขั้นต่ำสำหรับขั้นตอน hysteresis
threshold2 => เกณฑ์ค่าพิกเซลขั้นสูงสำหรับขั้นตอน hysteresis
Optional parameters are:
apertureSize => kernel สำหรับตัวกรอง Sobel ค่าเริ่มต้นคือ (3 x 3) ใช้สำหรับค้นหาการไล่ระดับสีของภาพ ฟิลเตอร์ใช้สำหรับปรับภาพให้เรียบและคมขึ้น
L2gradient => เป็นตัวแปรประเภทบูลีนและค่าเริ่มต้นคือ False
Example:
import cv2
import imutils
image = cv2.imread("/path/your/image.jpeg")
image = imutils.resize(image,width=400)
cv2.imshow("Original", image)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
cv2.imshow("Blurred", blurred)
wide = cv2.Canny(blurred, 10, 200)
cv2.imshow("Wide Edge Map", wide)
mid = cv2.Canny(blurred, 30, 150)
cv2.imshow("Mid Edge Map", mid)
tight = cv2.Canny(blurred, 240, 250)
cv2.imshow("Tight Edge Map", tight)
cv2.waitKey(0)

Last updated
Was this helpful?