【问题标题】:How can find the coordinates of white circles properly with Python and image processing techniques?如何使用 Python 和图像处理技术正确找到白色圆圈的坐标?
【发布时间】:2021-11-26 22:51:29
【问题描述】:

我想在 Python 和图像处理的帮助下找到如下图像中白色物体的坐标:

【问题讨论】:

  • 你想要质心还是每个白色像素?
  • SimpleBlobDetector 是一种很好且简单的方法。其他方法是使用或组合cv.findContours、cv.moments、cv.connectedComponentsWithStatsdocs.opencv.org/master/dd/d49/tutorial_py_contour_features.html
  • 我想要图像中每个白色物体的四个数字(Xmin、Ymin、Xmax、Ymax)@fmw42
  • 获取轮廓,然后获取它们的边界框。见 cv2.findContours() 和 cv2.boundingRect()

标签: python image opencv image-processing


【解决方案1】:

最简单的方法是使用 OpenCV 的斑点检测器。有关教程,请参阅 this article。但是,由于这是一个二进制图像,您可以使用类似于计算机视觉第一原理讲座中this video 中描述的算法。如果您对计算机视觉感兴趣,我建议您观看整个系列。太棒了。

如果你使用blob检测,你必须像这样设置blob颜色:

params = cv2.SimpleBlobDetector_Params()

params.filterByColor = True
params.blobColor = 255

detector = cv2.SimpleBlobDetector_create(params)

这将检测黑色背景上的白点。对于白色背景上的黑点,将 blobColor 设置为 0。

【讨论】:

  • 感谢您的回答,但在我的情况下,OpenCV 中的 blob 检测器无法正确找到对象的位置(由于某些不是圆形的对象的结构),我终于在cv.connectedComponentsWithStats的帮助下解决了问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-23
  • 2020-03-01
  • 1970-01-01
  • 2011-05-10
  • 2012-04-11
  • 1970-01-01
  • 2015-03-27
相关资源
最近更新 更多