python - Opencv HoughCircles 在二值图像上表现不佳?
问题描述
我试图在图像中定位一些彩色球,为了减少误报的风险,我首先根据当前正在搜索的球的颜色将图像缩小为二值图像。OpenCV 的 HoughCircles 无法在二进制图像中找到任何圆圈,而在转换为灰度的原始图像上表现相当好。HoughCircles 根本不适用于二值图像吗?我还没有找到任何建议的文件。
解决方案
输入图像应该是houghcircle : 8-bit, single-channel, and grayscale
。
在您的图像中,houghcircle 也能够找到该圆圈。您只需要为函数选择正确的参数即可。我尝试了这些参数并且能够找到它:
rows = gray.shape[0]
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, rows / 8,
param1=30, param2=15,
minRadius=0, maxRadius=0)
注意:最好在 houghcircle 之前应用 gaussian 或 medianBlur。
结果:
推荐阅读
- javascript - url_for 不适用于 HTML 中的 Javascript 文件
- javascript - 错误:当 `babelHelpers` 在 npm 链接上是“运行时”时,您必须使用 `@babel/plugin-transform-runtime` 插件
- python - 使用正则表达式模式拆分 csv(重复?)
- java - 如何通过持续侦听套接字来释放线程持有的互斥锁,该互斥锁永远不会放手
- c# - ASP.NET MVC。我无法打开详细信息页面,如果打开,我收到错误消息:“内部服务器错误 500”
- python - Linux 忽略在我的 python 脚本中启动的命令中的引号
- android - 在 Android 应用上使用 libdvbpsi 获取 EPG 信息
- javascript - 如何在反应原生跨平台上创建滚动视图动画弹性
- javascript - 在 discord.js 中更改 self bot 的昵称
- rxjs - rxjs:订阅地图中的可观察对象