2013-10-17 29 views
0

我使用opencv來查找輪廓,並在圖像框架上顯示每個輪廓,我已經看到了使用將輪廓轉換爲矩形的示例像OpenCV錯誤:通道數量不佳(源圖像必須有1,3或4通道)

`boundingRect(Mat(contours_poly[i]));` 

所以我認爲這可能是好的工作CV :: imshow( 「parking2」,墊(輪廓[1]));

cv::findContours(img_resized,contours,CV_RETR_LIST,CV_CHAIN_APPROX_SIMPLE); 
cout<<"contour size "<<contours.size()<<endl; 
for(int i = 0;i <contours.size();i++){ 
    cv::imshow("parking2", Mat(contours[i])); 
} 

但歸根結底,這是行不通的,給我的錯誤 - OpenCV的錯誤:渠道的壞數(源圖像必須有1,3或4個通道)

注:原始圖像是一個灰度圖像而不是RGB圖像。

回答

0

對不起,因爲懶/不清楚的一天,但即使你把你的輪廓點列表放到墊子裏,那不會讓它成爲圖像。這大概應該是:

Rect br = boundingRect(contours_poly[i]); // the rect containing all points of the contour 

Mat cropped(img_resized, br);    // the cropped part of the original image 

imshow("parking2", cropped);    // show cropped part only 

另外,如果你反覆調用imshow在循環中的相同windowname,你只能看到最後形象,一個電話將覆蓋其他

+1

這是絕對不是問題的答案... – kaiser

相關問題