OpenCV Python,为什么Hough Circle Transform找不到所有圆圈?

OpenCV Python,为什么Hough Circle Transform找不到所有圆圈?,第1张

概述我搜索了很长时间可能出错但我并不真正了解参数和预处理的影响 我无法发布图片,但是在一张非常清晰的欧元照片上,该程序识别出一些圈子,而不是其他一些圈子,甚至可以像其他人一样清楚. 这是我的代码:  ‘$’ import cv2 import numpy as np filename = r'C:\Users\roseline\Desktop\piecefacile.jpg' img = cv 我搜索了很长时间可能出错但我并不真正了解参数和预处理的影响
我无法发布图片,但是在一张非常清晰的欧元照片上,该程序识别出一些圈子,而不是其他一些圈子,甚至可以像其他人一样清楚.

这是我的代码:
 ‘$’

import cv2 import numpy as np filename = r'C:\Users\roseline\Desktop\pIEcefacile.jpg' img = cv2.imread(filename) output = img.copy() gray = cv2.cvtcolor(img,cv2.color_BGR2GRAY) #BGR donnant GRAY circles = cv2.HoughCircles(gray,cv2.cv.CV_HOUGH_GRADIENT,1,70,200,100)   if circles is not None: circles = np.round(circles[0,:]).astype("int") #convertit en entIEr les donnéesfor (x,y,r) in circles:    cv2.circle(output,(x,y),r,(0,255,0),4)    cv2.rectangle(output,(x-2,y-2),(x+2,y+2),128,255),-1)cv2.imshow("2015_TIPE_LE_DEM",np.hstack([img,output]))cv2.waitKey(0)

对不起,我希望有人可以帮助我,分享他的知识,我被剥夺了.

解决方法 这看起来像你设置硬币的最小和最大半径是错误的.算法不检测较小的算法,因为它不会查找它们,并且它确实发现了误报,因为您将阈值设置为低,最大半径设置得太高.

查看this Tutorial和the documentation并使用参数min_radius和max_radius(使两者都更小).您可以预先测量硬币的半径(以像素为单位).

如果你仍然获得正面命中,请使用参数param1和param2.如果您想自动进行,请使用互相关.

看到你的灰度图像会很有趣.如果您的真实世界数据像硬币图像一样简单,那么您真的很幸运.在很多时候,最困难的部分是摆脱噪音.

总结

以上是内存溢出为你收集整理的OpenCV Python,为什么Hough Circle Transform找不到所有圆圈?全部内容,希望文章能够帮你解决OpenCV Python,为什么Hough Circle Transform找不到所有圆圈?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197288.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存