OpenCV错误:通道数不正确(源图像必须有1、3或4个通道)
我正在使用opencv查找轮廓,并在图像帧上显示每个轮廓,我已经看到了使用将轮廓转换为矩形的示例OpenCV错误:通道数不正确(源图像必须有1、3或4个通道),opencv,image-processing,Opencv,Image Processing,我正在使用opencv查找轮廓,并在图像帧上显示每个轮廓,我已经看到了使用将轮廓转换为矩形的示例 `boundingRect( Mat(contours_poly[i]) );` 因此,我认为可以使用cv::imshow(“parking2”,Mat(等高线[I]) cv::findContours(img_resized,contours,CV_RETR_LIST,CV_CHAIN_APPROX_SIMPLE); cout<<"contour size "<<co
`boundingRect( Mat(contours_poly[i]) );`
因此,我认为可以使用cv::imshow(“parking2”,Mat(等高线[I])强>
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]));
}
cv::findContours(调整了img\u大小、轮廓、cv\u RETR\u列表、cv\u CHAIN\u近似值\u SIMPLE);
cout很抱歉前几天懒惰/不清楚,但即使你把轮廓点列表放在垫子上,也不会让它成为图像。可能是:
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
此外,如果在循环中使用相同的windowname重复调用imshow,则只会看到最后一个图像,因为一个调用将覆盖另一个调用