opencv - 如何使用 EmguCV 检测小 Blob ?

我正在尝试从头顶网络摄像头跟踪机器人的位置。但是,由于我对机器人或环境没有太多访问权限,所以我一直在处理来自网络摄像头的快照。
机器人有 5 个明亮的 LED 灯,它们的位置与机器人和环境的颜色足够不同,以便轻松隔离。
我已经能够使用 EmguCV 做到这一点,从而产生如下图所示的二进制图像。我现在的问题是,如何获得五个 Blob 的位置并使用这些位置来确定机器人的位置和方向?



我一直在尝试 Emgu.CV.VideoSurveillance.BlobTrackerAuto类,但它顽固地拒绝检测上图中的 Blob 。作为一个新手,当涉及到任何这些时,我不确定我可能做错了什么。
那么在上图中获得 Blob 位置的最佳方法是什么?

最佳答案

我不能告诉你如何使用 emgucv 特别是,你需要将调用从 opencv 转换为 emgucv。你会使用 cv::findContours获取 blob 和 cv::moments获取 blob 的位置(获取 blob 中点的公式在 cv::moments 的文档中)。然后你会使用 cv::estimateRigidTransform获取机器人的位置和方向。

https://stackoverflow.com/questions/5099552/

相关文章:

opencv - 在OpenCV中使用libjpeg将IplImage压缩为JPEG

image-processing - 为什么 cv::Dilate 的第三个参数失败?

qt - Qt GUI和OpenCV2.2镜像之间的干扰问题

opencv - 如何在ÅngströmLinux上安装OpenCV?

c# - 即使解决方案中的示例正常工作,emgucv示例的精确副本也无法工作

opengl - 纹理会影响对象的颜色

android - 适用于Android的OpenCV示例

qt - 整合QT和OpenCV?

iphone - iOS + OpenCV - 垫内存泄漏

python - Python等效于cvCalcEigenObjects的函数