2
我试图找到使用Python包装的OpenCV的图像圈的所有对象。 喜欢的东西this。找到所有圈子对象
使用cv2.HoughCircles,但我无法找到最佳参数。 有没有可能?
我的代码:
import cv, cv2
import numpy as np
im = cv2.imread("C:/1.jpg")
grey = cv2.cvtColor(im, cv.CV_RGB2GRAY)
blur= grey
#blur = cv2.GaussianBlur(grey, (0,0), 10)
circles = cv2.HoughCircles(blur, cv2.cv.CV_HOUGH_GRADIENT, 2, 5, np.array([]), 40, 80, 5, 50)#params?
if circles is not None:
for c in circles[0]:
cv2.circle(im, (c[0],c[1]), c[2], (0,255,0),2)
edges = cv2.Canny(blur, 40, 80)
cv2.imwrite("C:/circle.jpg",im)
cv2.imwrite("C:/canny.jpg",edges)
尝试'圈= cv2.HoughCircles(模糊,cv2.cv.CV_HOUGH_GRADIENT,1,16,np.array([]), 15,36,如图9所示,35)','用于CircularHough_Grd(红色MATLAB结果,[3 35],20%,15,1);'是这里(http://i.stack.imgur.com/bw5HL.jpg) 。它似乎仍然吸引更多的泡沫。 matlab版本使用'adapthisteq',它的opencv中的等价物是'createCLAHE'。我已经尝试过,但结果没有太大的不同,这意味着它可能是circularhough实现之间的区别。我注意到较小的雷达范围可以捕捉更多的东西,所以也许尝试多个不同的范围并将它们结合在一起 –