[英]OpenCV Drawing a Line from a set of points
我正在嘗試畫一條線來鏈接邊界框的中心點,隨着中心從一幀到另一幀的移動,這些點存儲在向量中。
現在,我嘗試使用CvLine將這些點與一條線鏈接在一起。 我正在關注此Opencv文檔 。 但是CvLine函數對我給它的參數感到滿意。
這是代碼:
vector<Point> Rightarm(20);
vector<Point> Leftarm(20);
vector<Point>::const_iterator RightIter;
vector<Point>::const_iterator LeftIter;
Point center = Point(oko[0].x + (oko[0].width/2), oko[0].y + (oko[0].height/2));
cout<<"Center Point of Box: 0 is: " <<center<<endl;
double area = (oko[0].width * oko[0].height);
cout<<"The Area of Box: 0 is: " <<area<<endl;
Point center1 = Point(oko[1].x + (oko[1].width/2), oko[1].y + (oko[1].height/2));
cout<<"Center Point of Box: 1 is: " <<center1<<endl;
double area1 = (oko[1].width * oko[1].height);
cout<<"The Area of Box: 1 is: " <<area1<<endl;
Rightarm.push_back(center);
Leftarm.push_back(center1);
if(oko[0].x > oko[1].x)
{
}
else
{
}
for(RightIter = Rightarm.begin(); RightIter != Rightarm.end(); ++RightIter)
{
circle(drawing, *RightIter, 3, Scalar(0,0,255), CV_FILLED);
}
if(Rightarm.size() == 20)
{
Rightarm.clear();
}
for(LeftIter = Leftarm.begin(); LeftIter != Leftarm.end(); ++LeftIter)
{
circle(drawing, *LeftIter, 3, Scalar(0,255,0), CV_FILLED);
}
if(Rightarm.size() == 20)
{
Leftarm.clear();
}
cvLine(drawing, center.x, center.y, Scalar(255,255,255),1 ,8 ,CV_AA);
imshow(window_Input, frame);
imshow(window_Output, drawing);
誰能看到我在這方面出了錯嗎?
您給線路功能提供了錯誤的論點和一個額外的論據。 您指向的文檔是針對Python接口的,也是使用cv
的較老版本的文檔。 假設您具有最新版本的OpenCV,最好在Python中使用新的C ++接口或cv2
接口。
你必須使用像
cvLine(
img, // image to draw on
center, // starting end point of line segment of type cv::Point
center1, // other end of line segment
Scalar(0, 255, 0), //green colour
1 // thickness of line
CV_AA // anti aliased line type
);
文檔在這里
也許是這樣的:
struct centerpoint {
int x;
int y;
} center1,center2;
(...) //Define values for centers.
cvLine( drawing,
cvPoint(center1.x, center1.y),
cvPoint(center2.x, center2.y),
Scalar(255,255,255), 1, 8 , CV_AA);
別忘了投票選出您喜歡的所有答案並接受有效的答案。
cvLine在兩點之間畫線,您應該給它兩個cv :: Point,但不能給定center.x nad center.y
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.