使用OpenCV进行球检测
Ball detection with OpenCV
我需要在OpenCV中使用低分辨率(320 x 240)图像,并找到一个蓝色或红色的大健身球。球宽 25 英寸,不能保证是完美的圆形。我尝试使用带有Canny阈值图像的HoughCircles。我没有成功。我做错了什么,以像素为单位获取球的大小及其位置的最佳方法是什么?它会让我计算出它离相机有多远之类的东西!
让我在一个
答案中收集所有其他建议:
- 使用 cv::inRange() 获得正确的颜色(更多信息)。您可能希望事先使用RGB规范化之类的东西来确保检索完整的球。
- 现在你拥有了与球相关的所有像素(也许还有一些你必须摆脱的噪音)。检索球中左/右和顶部/底部相距最远的像素(也称为具有合理大小的连接组件)以获得球的大小。(如果球不必是圆形的,您可能希望取更大的值)
- 使用图片中现在已知的球大小计算与相机的距离。(显然,您必须事先知道此计算的"实际"大小;))
显然还有其他方法(例如使用边缘检测),但这是最简单的方法。
如果您发布示例图片,则更容易给您答案。
相关文章:
- Tensorflow对象检测在Python和C++(OpenCV)之间有不同的结果
- 如何在OpenCV中检测这是谁的脸?
- 如何在 ORB 检测 OpenCV ++ 中获取校正角度?
- OpenCV代码不会检测人脸的数量,也不会在脸周围放一个圆圈
- 检测 OpenCV C++窗口上的触摸
- 使用opencv的C++图像检测
- 如何以及在何处使用带QT的Basler Cam实现opencv人脸检测代码
- 在不使用经过训练的模型的情况下检测/分割面部和面部特征:openCV C++
- Opencv cascade.detectMultiScale 不检测眼睛
- 无法使用 OpenCV 3.1.0 检测 ArUco 标记
- 如何将此项目更改为 OpenCV 实时人脸检测应用程序?
- 检测 OpenCV 中"average"的颜色范围
- 检测OpenCV C (移动相机)上的运动
- 如何使用 SVMLIGHT 模型文件通过 C++ 检测 OpenCV 中的对象
- 内存分配错误/圆检测/openCV / C ++
- 我需要修改 Sobel 内核以进行对角线边缘检测.OpenCV和C++
- 检测opencv中的黄色
- 人脸检测OpenCV + Qt + cvMat
- 边缘检测opencv android
- 卡边缘检测OpenCV