[英]circle detection in noisy a image
這是我用來檢測圓的代碼:
import cv2
import numpy as np
import sys
img = cv2.imread(sys.argv[1],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=5,maxRadius=25)
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
# draw the outer circle
cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
# draw the center of the circle
cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)
cv2.imshow('detected circles',cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
我想檢測圖像中的大多數圓圈。 由此,我可以以編程方式找到圖像中央附近的錯位。 任何幫助,不勝感激。 提前致謝。
編輯:根據以下shortcipher3的建議,我將param2從HoughCircles降低到15,並將最小半徑增加到16,現在我可以檢測到大多數圓圈,如下所示:
我不清楚您的問題是什么,我假設您想檢測更多的圈子?
HoughCircles的文檔可以在這里找到:
https://docs.opencv.org/2.4/modules/imgproc/doc/feature_detection.html?highlight=houghcircles
根據文檔,我會說您的閾值在調用circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,20, param1=50,param2=30,minRadius=5,maxRadius=25)
中並不理想。
我首先嘗試降低param2
,如果那對您不起作用,也請使用param1
的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.