二进制图像上的霍夫圆圈
Hough Circle on binary images
我正在尝试创建一个通用函数,它总是能找到我的 3 个颜色球。(红色、黄色和白色)。我花了很多时间来寻找解决方案,这很难......目前,首先,我使用 Canny 过滤器(我使用 Otsu 方法来确定下限和较高参数),并通过递增param2
调用 Hough 圆方法,直到找到 3 个圆。
while (!findCircles){
Imgproc.HoughCircles(hough, circles, Imgproc.CV_HOUGH_GRADIENT, 1, 100, 200, low, 20, 100); //find3Circles = true;
if (circles.cols() == 3){
findCircles = true;
}
low++;
}
效果不是很好...
如果有人投票支持我的问题,我可以发布图片(我没有足够的积分......拜托,如果有人找到了解决方案,告诉我会很好。
我认为你应该把你的方法建立在查找颜色而不是形状上,或者至少你应该盯着寻找颜色,然后找到形状。这里有一篇很好的文章(它使用旧的OpenCV API,但其他一切都很好)描述了如何在OpenCV中执行基于颜色的对象跟踪。总体思路很简单 - 将图像转换为HSV色彩空间,使用inRange函数查找可能是您的对象的像素,然后跟踪它们(很可能您必须过滤像素 - 找到最大的轮廓或形状接近圆形的轮廓)。请注意,您需要调用 inRange 函数 3 次(每个球一次)。
相关文章:
- 从二进制图像到形状文件
- 二进制图像的空间直方图
- openCV c++中手动侵蚀图像的问题(二进制图像)
- 将像素打包在盒子中的 1 位/带宽/二进制图像中
- 根据现有的标签(而不是二进制图像)查找使用 OpenCV 连接的组件
- 如何在包含数字的.bmp(二进制图像)中执行组件标记9 4 3 6
- Mongodb C++ API 插入二进制文件(图像)
- C++中的二进制图像处理
- 将pcl :: pointcloud转换为二进制图像.C
- 如何在 c++ 中读取二进制图像 (tif)
- 如何使用opencv函数计算图像的孔数(二进制)
- 将二进制图像转换为OpenCV中的RGB
- C 将二进制(P5)图像转换为ASCII(P2)图像(.pgm)
- 如何在OpenCV中创建二进制非灰度图像
- 二进制图像上的霍夫圆圈
- OpenCV空二进制图像C++
- 将图像读取为二进制文件
- 访问OpenCV中的Mat二进制图像元素
- 通过二进制处理图像像素
- OpenCV:如何使用阈值正确分割图像/使用二进制图像对原始图像进行分割