สำหรับวัตถุประสงค์ของการวิเคราะห์ภาพเราใช้ไลบรารีหลาม Opencv (Open Source Computer Vision Library) ชื่อไลบรารีที่ต้องนำเข้าหลังจากติดตั้ง opencv คือ cv2
ในตัวอย่างด้านล่าง เราจะพบรูปทรงที่มีอยู่ในไฟล์ภาพ รูปทรงช่วยให้เราระบุรูปร่างที่มีอยู่ในภาพได้ คอนทัวร์ถูกกำหนดให้เป็นเส้นที่เชื่อมจุดทั้งหมดตามแนวขอบของรูปภาพที่มีความเข้มเท่ากัน ฟังก์ชัน findContours ใน OPEnCV ช่วยให้เราระบุรูปทรงได้ ในทำนองเดียวกัน ฟังก์ชัน drawContours ช่วยเราวาดเส้นขอบ ด้านล่างนี้คือไวยากรณ์ของทั้งคู่
ไวยากรณ์
cv.FindContours(image, mode=CV_RETR_LIST, method=CV_CHAIN_APPROX_SIMPLE) Where image is the name of the image Mode is Contour retrieval mode Method is Contour approximation method cv.DrawContours(img, contours, contourIdx, colour, thickness) Where image is the name of the image contours – All the input contours. contourIdx – Parameter indicating a contour to draw. If it is negative, all the contours are drawn. color – Color of the contours thickness is how thick are the lines drawing the contour
ตัวอย่าง
ในตัวอย่างด้านล่าง เราใช้รูปภาพด้านล่างเป็นรูปภาพอินพุตของเรา จากนั้นเรียกใช้โปรแกรมด้านล่างเพื่อดูเส้นขอบโดยรอบ
เราสามารถหารูปทรงได้สามแบบในแผนภาพด้านบน เราสามารถวาดเส้นขอบรอบ ๆ ทั้งหมดหรือบางส่วนโดยใช้โปรแกรมด้านล่าง
ตัวอย่าง
import cv2 # Load an image image = cv2.imread(“path to image file”) # Changing the colour-space LUV = cv2.cvtColor(image, cv2.COLOR_BGR2LUV) # Find edges edges = cv2.Canny(LUV, 10, 100) # Find Contours contours, hierarchy = cv2.findContours(edges,cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) # Find Number of contours print("Number of Contours is: " + str(len(contours))) # Draw yellow border around two contours cv2.drawContours(image, contours, 0, (0, 230, 255), 6) cv2.drawContours(image, contours, 2, (0, 230, 255), 6) # Show the image with contours cv2.imshow('Contours', image) cv2.waitKey(0)
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
ผลลัพธ์
Number of Contours found = 3
และเราได้แผนภาพด้านล่างที่แสดงผลลัพธ์