Nền tảng OpenCV cung cấp thư viện cv2 cho python. Điều này có thể được sử dụng để phân tích hình dạng khác nhau, rất hữu ích trong thị giác máy tính. Trong bài viết này, chúng ta sẽ xác định hình dạng của một vòng tròn bằng cách sử dụng Open CV. Để làm được điều đó, chúng ta sẽ sử dụng hàm cv2.HoughCircles (). Tìm các vòng tròn trong hình ảnh thang độ xám bằng cách sử dụng biến đổi Hough. Trong ví dụ dưới đây, chúng tôi sẽ lấy một hình ảnh làm đầu vào. Sau đó, tạo một bản sao của nó và áp dụng chức năng biến đổi này để xác định vòng tròn trong đầu ra.
Cú pháp
cv2.HoughCircles(image, method, dp, minDist) Where Image is the image file converted to grey scale Method is the algorithm used to detct the circles. Dp is the inverse ratio of the accumulator resolution to the image resolution. minDist is the Minimum distance between the center coordinates of detected circles.
Ví dụ
Trong ví dụ dưới đây, chúng tôi sử dụng hình ảnh bên dưới làm hình ảnh đầu vào của chúng tôi. Sau đó, chạy chương trình dưới đây để nhận các vòng kết nối.
Chương trình dưới đây phát hiện sự hiện diện của vòng tròn trong tệp hình ảnh. Nếu vòng tròn hiện diện thì nó sẽ làm nổi bật nó.
Ví dụ
import cv2 import numpy as np image = cv2.imread('circle_ellipse_2.JPG') output = image.copy() img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # Find circles circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1.3, 100) # If some circle is found if circles is not None: # Get the (x, y, r) as integers circles = np.round(circles[0, :]).astype("int") print(circles) # loop over the circles for (x, y, r) in circles: cv2.circle(output, (x, y), r, (0, 255, 0), 2) # show the output image cv2.imshow("circle",output) cv2.waitKey(0)
Chạy đoạn mã trên cho chúng ta kết quả sau -
Đầu ra
[[93 98 84]]
Và chúng tôi nhận được sơ đồ dưới đây hiển thị đầu ra.