C++ 中多个帧的 Blob ID 匹配(图像分析)

发布于 2024-09-05 08:44:15 字数 217 浏览 14 评论 0原文

我正在用 C++ 开发一个 Blob 匹配和跟踪库。目前,我正在使用 OpenCV 来检测斑点,并尝试通过检查斑点的位置、速度和大小来匹配新帧中的斑点。这工作得很好,我收到了很高的斑点匹配率(95% 或更高)。

有时斑点会从图像中掉出或出现新的斑点。现在我需要为匹配的 blob 提供与之前相同的 ID。我想知道是否有典型或常用的技术可以做到这一点。甚至一些我可以用来谷歌的关键词。

谢谢

I'm working on a blob matching and tracking library in C++. Currently I'm using OpenCV to detect blobs and try to match blobs in a new frame by checking the position, velocity and size of the blob. This works quite okay and I'm receiving a high blob match rate (95% or higher).

Sometimes blobs fall out of the image or new blobs appear. Now I need to give matched blobs the same ID as they had before. I'm wondering if there are typical or commonly used techniques for doing this. Or even some keywords I can use to Google on.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不即不离 2024-09-12 08:44:15

http://en.wikipedia.org/wiki/Blob_extraction

我假设你的 blob 位于一个二值图像,只需用不同的颜色/id 填充每个 blob,并在具有相同 id 的帧之间注册重叠的 blob。

http://en.wikipedia.org/wiki/Blob_extraction

I assume you have your blobs in a binary image, simply floodfill each blob with a different color/id, and register overlapping blobs between frames with the same id.

浮生未歇 2024-09-12 08:44:15

CCV 用于多点触摸环境的多手指跟踪。查看他们的 跟踪代码。它使用了一个使用 k 最近邻算法的函数 trackKnn

如果斑点相互碰撞,您还可以使用卡尔曼滤波器。查看这个SO

CCV is used for multiple finger tracking for multi-touch environments. Check out their tracking code. It uses a function trackKnn which uses k nearest neighbour algorithm.

You can also use Kalman Filter if blobs collide each other. Check out this SO

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文