[英]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
的值,以避免錯誤檢測。
您也可以調整minRadius
和maxRadius
值以獲得更好的結果。
編輯:
我只是從這里嘗試過示例,僅將param2
更改為10
,將minRadius
為30
,將maxRadius
為50
。 結果足夠好:
上面鏈接中的示例是使用C ++編寫的,但是您可以比較參數和函數調用的順序以完善自己的算法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.