imshow recherche une image complète.
en projetant un contour sur un tapis, vous n'aurez pas d'image. ce que vous pouvez faire est: (src est votre image)
src = imread(argv[1], 1);
/// Convert image to gray and blur it
cvtColor(src, src_gray, CV_BGR2GRAY);
blur(src_gray, src_gray, Size(3,3));
Mat canny_output;
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
/// Detect edges using canny
Canny(src_gray, canny_output, thresh, thresh*2, 3);
/// Find contours
findContours(canny_output, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));
/// Draw contours
for(int i = 0; i< contours.size(); i++)
{
Mat test_image = Mat::zeros(canny_output.size(), CV_8UC3);
Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255));
drawContours(test_image, contours, i, color, 2, 8, hierarchy, 0, Point());
imshow("test",test_image);
waitKey();
}
S'il vous plaît copier coller soigneusement! La parenthèse après imshow n'est pas fermée! – hivert
Peut-être qu'il y a quelque chose qui ne va pas dans votre constructeur de copie de cv :: Mat, votre paramètre est passé par référence? – minicaptain
si vous voulez juste les voir la réponse est là-bas. – Khashayar