2015-01-15 65 views
0

我有4點的矢量:連接四點與drawContours OpenCV中

vector<vector<Point> > data(4); 
data[0].push_back(Point(0,0)); 
data[1].push_back(Point(0,120)); 
data[2].push_back(Point(180,100)); 
data[3].push_back(Point(70,0)); 

我想將它們連接起來,並在圖像上畫出的形狀。 我試着用drawContours功能,但是這個代碼不工作:

for(int i = 0; i< data.size(); i++) 
    { 
     drawContours(input,data,i,Scalar(0,255,0),10,LINE_8); 
    }  
+0

*「code does not work」*對你有什麼意義?它畫了什麼?沒有?代碼是否被編譯? –

+0

它只繪製了這些點之間沒有一條線。 – Mike

回答

1

您的'數據'包含4個輪廓。每個輪廓都有一個繪製在圖像上的點。你需要的是1點輪廓4點。將所有點都推送到數據[0]。

在旁邊注意,您不需要在循環中調用drawContours()。如果提供輪廓的負指數(第三個參數),則將繪製所有輪廓。

vector<vector<Point> > data(1); 
data[0].push_back(Point(0,0)); 
data[0].push_back(Point(0,120)); 
data[0].push_back(Point(180,100)); 
data[0].push_back(Point(70,0)); 
drawContours(input, data, -1, Scalar(0,255,0), 10, LINE_8); 
0

如果只有4分,我建議你使用CV ::矩形。如果你有很多積分,你必須使用cv::Line來寫一個函數。

+1

問題中的要點不在於矩形。 – user2983637