溫馨提示×

怎么使用OpenCV檢測圖像中的圓形

小億
465
2024-05-22 16:21:15
欄目: 編程語言

要使用OpenCV檢測圖像中的圓形,可以使用Hough Circle Transform算法。以下是一個簡單的例子,演示如何在圖像中檢測圓形:

import cv2
import numpy as np

# 讀取圖像
image = cv2.imread('circle.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 高斯濾波
gray_blurred = cv2.GaussianBlur(gray, (9, 9), 0)

# 使用Hough Circle Transform檢測圓形
circles = cv2.HoughCircles(gray_blurred, cv2.HOUGH_GRADIENT, dp=1, minDist=20,
                            param1=50, param2=30, minRadius=0, maxRadius=0)

if circles is not None:
    circles = np.uint16(np.around(circles))

    for i in circles[0, :]:
        # 繪制圓形邊界
        cv2.circle(image, (i[0], i[1]), i[2], (0, 255, 0), 2)
        # 繪制圓心
        cv2.circle(image, (i[0], i[1]), 2, (0, 0, 255), 3)

# 顯示結果
cv2.imshow('Detected Circles', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上面的代碼中,首先讀取圖像并將其轉換為灰度圖像。然后,對灰度圖像進行高斯模糊處理。接下來,使用cv2.HoughCircles()函數檢測圖像中的圓形。最后,遍歷檢測到的圓形,并用綠色圓圈繪制圓形的邊界,用紅色點繪制圓心。

注意:在使用Hough Circle Transform算法時,需要調整函數的參數以獲得最佳效果,具體參數的意義可以參考OpenCV官方文檔。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女