簡體   English   中英

使用Opencv / c ++在Stream中的兩個點之間繪制aline

[英]draw aline between two points in Stream using Opencv /c++

我瘋了......我想在最后一幀中的(center.x和center.y)和當前幀中的(center.x和center.y)之間繪制一條線...

for(int j=0; j<Frames; j++){ 
       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));               
          int radius = cvRound(circles[i][2]);
          circle( dis, center, 3,  1 , -1, 8, 0 );            
          circle( dis, center, radius,  1  , 3, 8, 0 );  
          cv::Point2i p1(center.x, center.y);
          }    
    }
  cv::Mat base(100, 100, CV_32F);
      cv::Point2i p2(center.x, center.y);  //for the previous frame

      cv::line(base, p1, p2, cv::Scalar(1.0), 1, CV_AA);   // CV_AA == Anti-aliased flag

代碼第一次運行時,當前幀的p1將成為! 但我不知道如何將其保存在緩沖區以保持它,然后當代碼第二次運行時在這兩點之間畫一條線。

提前致謝..

如果全局聲明一個cv :: Point:

cv::Point prevCenter;

並將其設置在循環中

prevCenter.x = center.x;
prevCenter.y = center.y;

如果在j的循環中添加cv :: line語句(現在,它在循環之外),你應該可以用它來繪制線條

if (j > 0)
{
    cv::line(base, center, prevCenter, cv::Scalar(1.0), 1, CV_AA); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM