首页 文章

使用OpenCV进行球检测

提问于
浏览
3

我需要在OpenCV中使用低分辨率(320 x 240)图像并找到一个大的健身球,蓝色或红色 . 球的宽度为25英寸,不保证是完美的圆形 . 我尝试使用带有Canny-thresholded图像的HoughCircles . 我没有成功 . 我做错了什么,以像素为单位获得球的大小的最佳方法是什么?它会让我计算出距离相机有多远的东西!

1 回答

  • 2

    让我在一个答案中收集所有其他建议:

    • 使用cv::inRange()获取正确的颜色(More Information on that) . 您可能希望事先使用类似RGB Normalization之类的东西来确保您完成整个球 .

    • 现在你拥有了与球相关的所有像素(也许你必须摆脱一些噪音) . 检索球中左/右和上/下最远的像素(也就是具有合理大小的连接组件)以获得球的大小 . (如果球不必是圆的,你可能想要取更大的值)

    • 使用图片中现在已知的球大小计算相机的距离 . (你必须事先知道这个计算的"real"大小;))

    显然还有其他方法(例如使用边缘检测),但这是最简单的方法 .

    如果您发布示例图片,则更容易给您答案 .

相关问题