使用opencv和c++跟踪帧序列中的某些点

track some certain points in frame sequences using opencv and c++

本文关键字:opencv c++ 跟踪 使用      更新时间:2023-10-16

我是图像处理和c++编程的新手。这就是我到目前为止所做的,以便能够保持帧序列中某些特定点的坐标:

我能在相框里找到一个圆心。

cv::HoughCircles( tmp2, circles, CV_HOUGH_GRADIENT, 1, 300, 300, 100);
       for( size_t i = 0; i < circles.size(); i++ ){
            Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
            cout << "center" << center.x << ", " << center.y << endl;
            Vector.push_back(std::make_pair(center.x,center.y));               //coordinates of center points
            int radius = cvRound(circles[i][2]);
            // circle center
            circle( tmp2, center, 3,  1 , -1, 8, 0 );           
             // circle outline
            circle( tmp2, center, radius,  1  , 3, 8, 0 );      
        }
            }
  1. 这个中心点包含什么?它包含中的像素值吗这一点
  2. 例如,如果我在frame1中有3个圆……这是在向量中复制(make_pair)它们的好方法吗
  3. 如何跟踪框架2中的这些中心点以找到它们的新坐标

提前谢谢。。

  1. 是的,中心包含坐标,它是由字段x和y组成的结构
  2. 这取决于你之后需要什么。您希望如何进一步处理它们
  3. 多对象跟踪取决于您拥有的图像类型。在没有任何先验信息的情况下,您不能仅"跟踪"圆心。是合成的圆圈,还是一些实物或其他什么?请检查此处的第一个答案,它是相关的