首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用光流和运动矢量跟踪或预测已找到的轮廓的路径?

如何使用光流和运动矢量跟踪或预测已找到的轮廓的路径?
EN

Stack Overflow用户
提问于 2015-12-14 23:21:04
回答 2查看 1K关注 0票数 0

我正在用OpenCV python编写一个项目。这基本上是一个交通监控最后一年的项目..到目前为止,我已经编写了代码,当运行时,它可以识别视频中的车辆,并在这些车辆上绘制一个矩形和质心。现在,我想要做的是绘制运动矢量或跟踪上面找到的轮廓,即车辆。我无法计算opencv光流函数在这种情况下的参数是什么。有人能帮我吗?谢谢..这是代码的轮廓查找部分。

代码语言:javascript
复制
image, contours, hierarchy = cv2.findContours(fgmask.copy(), cv2.RETR_EXTERNAL,
                                       cv2.CHAIN_APPROX_NONE)
    try: hierarchy = hierarchy[0]
    except: hierarchy = []


    #Drawing Rectangles arround contours (Vehicles)
    for contour, hier in zip(contours, hierarchy):
        (x,y,w,h) = cv2.boundingRect(contour)
        if w > 8 and h > 8:

            cv2.rectangle(frame, (x,y), (x+w,y+h), (255, 0, 0), 2)
EN

回答 2

Stack Overflow用户

发布于 2015-12-14 23:24:03

我不认为你能用OpticalFlow做到这一点。我建议你调查一下KalmanFilter。这样,您就可以跟踪、平滑和预测历史中的运动矢量。

票数 0
EN

Stack Overflow用户

发布于 2015-12-15 07:02:15

好吧,我以前也这么做过。你需要2帧。但是,如果您提取一个包含前一个检测到的对象的4个角和当前帧中该车辆的4个角的子图像,则可以更快地完成处理,矩形应该尽可能小,并且它应该在两个图像中都匹配。之后,您可以应用光流函数:

代码语言:javascript
复制
cv::calcOpticalFlowFarneback(prvsRgle,currentRgle,flow, 0.5, 3, 5, 5, 7, 1.5, 0);

这里有一些你应该访问的有用的链接:12和我最喜欢的3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34270578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档