在opencv中绘制多个移动物体的轨迹

时间:2015-02-23 10:45:21

标签: c++ opencv path

我目前正在完成我的最后一年项目。目标是使用轨迹分析来检测停车场环境中的“正常”事件(例如在停车场中行走的人)。我已完成背景扣除和斑点检测。我想通过使用边界框的质心的坐标来绘制移动物体的轨迹(例如:人类,汽车等)。这样做是否有预定义的功能?任何帮助,将不胜感激。提前致谢。

1 个答案:

答案 0 :(得分:0)

假设你有X和Y像素坐标,你总是可以使用opencv的基本绘图库来绘制一条跟随对象路径的线。下面是一个例子。

    int iLastX = -1; 
    int iLastY = -1;

     Mat imgLines = Mat::zeros( imgTmp.size(), CV_8UC3 );;

        while(true){

            Mat imgOriginal;

             if (iLastX >= 0 && iLastY >= 0 && posX >= 0 && posY >= 0)
               {
                //Draw a red line from the previous point to the current point
                line(imgLines, Point(posX, posY), Point(iLastX, iLastY), Scalar(0,0,255), 2);
               }

                iLastX = posX;
               iLastY = posY;

      imgOriginal = imgOriginal + imgLines;
      imshow("Original", imgOriginal); //show the original image
        }