gpt4 book ai didi

visual-c++ - 将第 i 帧的 Blob 与第 i+1 帧相关联?

转载 作者:太空宇宙 更新时间:2023-11-03 22:15:25 25 4
gpt4 key购买 nike

我有一项棘手的任务,将第 i 帧中的 Blob 与第 i+1 帧中的 Blob 相关联。我没有找到足够的文章/示例来处理这个问题,或者我能很好理解的文章/示例。我想要做的就是将第 i 帧中的 Blob 与第 i+1 帧中的 Blob 相关联。目标是不在下一帧中再次检测到相同的 Blob (或忽略旧 Blob )。

欢迎提供文章/示例。谢谢

最佳答案

如果 blob 的大小在帧与帧之间发生变化,则必须使用 blob 的尺度不变描述符才能比较两个 blob。 cv::HuMomments 就是这样的描述符。您还可以使用函数 cv::matchShapes 直接比较您在后续图像中检测到的轮廓。

如果帧与帧之间的 Blob 移动非常小,那么您可以保存第一帧中 Blob 的中心位置,并通过获取最接近这些中心的 Blob 来识别第二帧中相应的 Blob 。 (正如 pppoe 先生之前提到的)

另一种可能性是在每个 blob 的轮廓内(如果它们有一些纹理)和边界上采样点,并使用 Lucas Kanade Tracking (cv::calcOpticalFlowPyrLK)。中值光流可以告诉您 Blob 移动到哪里。

您还可以为每个 blob 单独运行 Lucas Kanade Tracking。将 prevPts 设置为 blob 的中心,winSize 应与 blob 的大小完全匹配。

OpenCV中的Lucas Kanade Tracking算法只能追踪很小的平移位移。如果你也有大的旋转,你将需要一个模板跟踪算法来优化旋转。在这里你可以找到一个不错的tutorial关于这个和here对此有更深入的研究。

为了给你更多的想法,我们需要更多关于 Blob 的样子、它们如何移动、它们有多大等的信息。张贴一些图片!

关于visual-c++ - 将第 i 帧的 Blob 与第 i+1 帧相关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13331163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com