Computer >> Máy Tính >  >> Lập trình >> Python

Tìm vòng kết nối trong hình ảnh bằng OpenCV trong Python

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.

Tìm vòng kết nối trong hình ảnh bằng OpenCV trong Python

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.

Tìm vòng kết nối trong hình ảnh bằng OpenCV trong Python