簡體   English   中英

OpenCV霍夫圓變換不起作用

[英]OpenCV Hough Circle Transform Not Working

我已在此處按照OpenCV的教程 Raspberry Pi上進行圓圈檢測。 這是我使用的代碼,與本教程相同,只是圖像不同。

import cv2
import numpy as np

img = cv2.imread('watch.jpg',0)
img = cv2.medianBlur(img,5)
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)

circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,20,
                       param1=50,param2=30,minRadius=0,maxRadius=0)
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
    cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
    cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)

cv2.imshow('image',cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()

然后,當我運行腳本時,這就是我所看到的 在此處輸入圖片說明

這是原始圖像

在此處輸入圖片說明

是什么導致這種情況發生?

先感謝您!

編輯:

在此處輸入圖片說明

Hough Circle Transform生成的大量是由中心檢測閾值的較低值引起的,該閾值在cv2.HoughCircles中為param2

因此,請嘗試增加param2的值,以避免錯誤檢測。

您也可以調整minRadiusmaxRadius值以獲得更好的結果。

編輯:

我只是從這里嘗試過示例,僅將param2更改為10 ,將minRadius30 ,將maxRadius50 結果足夠好:

在此處輸入圖片說明

上面鏈接中的示例是使用C ++編寫的,但是您可以比較參數和函數調用的順序以完善自己的算法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM