Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ค้นหาและวาดรูปร่างโดยใช้ OpenCV ใน Python


สำหรับวัตถุประสงค์ของการวิเคราะห์ภาพเราใช้ไลบรารีหลาม 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

ตัวอย่าง

ในตัวอย่างด้านล่าง เราใช้รูปภาพด้านล่างเป็นรูปภาพอินพุตของเรา จากนั้นเรียกใช้โปรแกรมด้านล่างเพื่อดูเส้นขอบโดยรอบ

ค้นหาและวาดรูปร่างโดยใช้ OpenCV ใน Python

เราสามารถหารูปทรงได้สามแบบในแผนภาพด้านบน เราสามารถวาดเส้นขอบรอบ ๆ ทั้งหมดหรือบางส่วนโดยใช้โปรแกรมด้านล่าง

ตัวอย่าง

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

และเราได้แผนภาพด้านล่างที่แสดงผลลัพธ์

ค้นหาและวาดรูปร่างโดยใช้ OpenCV ใน Python