Problème opencv - fonction findContours

Problème opencv - fonction findContours - C++ - Programmation

Marsh Posté le 19-07-2013 à 11:28:40    

Bonjour,
 
Je travaille en ce moment sur un projet de détection de formes sur opencv v2.4.6 mais mon programme plante lors de l’instruction cv::findContours.
Pour info, je compile en mode Debug sous Visual Studio 2012.
Voici ce que m'affiche Visual lorsque j’exécute le programme pas à pas :
 
Exception non gérée à 0x775F2C39 (ntdll.dll) dans Shapes.exe : 0xC0000005 : Violation d'accès lors de la lecture de l'emplacement 0x88FFFFFF.
 
Ci-dessous mon code, très inspiré du tutoriel d'opencv sur la détection de contours. Pardonnez sa simplicité mais j'ai essayé de le réduire au minimum.
 

Code :
  1. #include <iostream>
  2. #include <opencv2/core/core.hpp>
  3. #include <opencv2/highgui/highgui.hpp>
  4. #include <opencv2/imgproc/imgproc.hpp>
  5. int valeur=50;
  6. const int VALEUR_MAX=100;
  7. cv::Mat image;
  8. void contoursCanny (int,void*)
  9. {
  10. cv::Mat gray;
  11. std::vector<std::vector<cv::Point>> contours;
  12. std::vector<cv::Vec4i> hierarchy;
  13. unsigned int i;
  14. cv::cvtColor( image, gray, CV_BGR2GRAY );
  15. cv::Canny(gray,gray,valeur,2*valeur);
  16. //cv::findContours( gray, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE);//Detection de contours avec hierarchie
  17. cv::findContours( gray, contours, CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE);//Detection de contours sans hierarchie
  18. cv::waitKey();
  19. [....]
  20. }
  21. int main (int argc,char** argv)
  22. {
  23. cv::VideoCapture capture(0);
  24. char *titre="Sortie Webcam",
  25.  *titre2="Parametres";
  26. char esc;
  27. if (!capture.isOpened())
  28. {
  29.  fprintf(stderr, "Impossible de recuperer l image de la webcam." );
  30.  return EXIT_FAILURE;
  31. }
  32. cv::namedWindow(titre,CV_WINDOW_AUTOSIZE);
  33. cv::namedWindow(titre2,CV_WINDOW_AUTOSIZE);
  34. cv::createTrackbar("Canny",titre2,&valeur,VALEUR_MAX,contoursCanny);
  35. while (1)
  36. {
  37.  capture>>(image);
  38.  contoursCanny(0,0);
  39.  cv::imshow (titre, image);
  40.  esc=cv::waitKey (10);
  41.  if (esc==27)break;
  42. }
  43. return 0;
  44. }


 
L'instruction en commentaire ne fonctionne pas non plus
Est ce que quelqu'un peut m'aider ?
 
Merci d'avance.


Message édité par toromis le 19-07-2013 à 16:55:51
Reply

Marsh Posté le 19-07-2013 à 11:28:40   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed