|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 57 ![]() |
Alors voilà, mon problème est tout simple:
Je souhaite convertir une séquence d'images au format IplImage vers le format Mat. Pour convertir une seule image, pas de problème, cela se lance correctement: Code :
Code :
Comment faire? ![]() Mayday |
||||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : décembre 2008 Messages : 236 ![]() |
Est-ce que img2 et img3 sont bien alloués à la bonne taille (579) ?
D'où sort imgMat3 ? S'il est déclaré avant la boucle, son contenu sera écrasé à chaque itération. S'il est déclaré dans la boucle, son contenu sera détruit après chaque itération. |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 57 ![]() |
Merci d'avoir répondu,
il est vrai que ce n'était pas très clair, j'ai donc réécrit mon code. De plus ce la plante dans les 2 cas, que imgMat3: - soit déclaré dans la boucle, - ou en dehors |
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Chercheur en informatique Inscription : avril 2008 Messages : 272 ![]() |
Mais pourquoi tu charges tes images en IplImage (interface C d'OpenCV) pour ensuite les convertir en cv::Mat (interface C++) ? Restes sur des cv::Mat, ça t’éviteras un paquet d'erreur de mémoire et d'oublis de désallocation.
|
|
|
00
|
|
|
#5 | ||||
|
Membre éclairé
![]() Inscription : décembre 2008 Messages : 236 ![]() |
Remarque préalable.
Comme je l'ai dit sur une autre discussion, tu devrais formater ta variable k : Code :
Code :
Si besoin est, setfill(X) comblera les caractères manquants par des X (ici des zéros mais ç'aurait pu être des '*' ou des espaces). -- Quant à ton problème, là encore je t'avais conseillé de ne pas mélanger API C et API C++ d'OpenCV... Tu ne devrais pas recaster tes IplImage* en cv::Mat. Utilise cvAbsDiff (au lieu de cv::absdiff, note la différence) sur tes IplImage* et ça devrait mieux se dérouler. |
||||
|
|
00
|
|
|
#6 | ||
|
Candidat au titre de Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 57 ![]() |
Merci pour l'information, je viens de le faire, mais j'ai toujours un problème avec absdiff qui plante. Ce compilateur, visual studio, n'est pas très performant, il pourrait trouver les erreurs avant la compilation au lieu de planter après sens arrêts!! je préfère netbeans en java, enfin, voici le code:
Code :
|
||
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Inscription : décembre 2008 Messages : 236 ![]() |
Un petit tour du côté de la doc :
http://opencv.itseez.com/modules/cor...s.html#absdiff Est-ce que img3[k] a la même dimension que img2[k] au moment d'appeler absdiff ? |
|
|
00
|
|
|
#8 | ||
|
Candidat au titre de Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 57 ![]() |
Merci Cob, oui mon prof m'a aussi dit de ne pas mélanger c et c++, et oui, même en initialisant img3[] avec le contenu de img2[], ça plante.
Ce qui est pénible, c'est qu'il ne marque pas d'erreur dans le code. voici ensuite le message d'erreur: Exception non gérée à 0x75819673 (KernelBase.dll) dans IA_Assignment.exe*: Exception Microsoft C++*: cv::Exception à l'emplacement mémoire 0x002fee98.. Code :
|
||
|
|
00
|
|
|
#9 |
|
Membre éclairé
![]() Inscription : décembre 2008 Messages : 236 ![]() |
Avant d'appeler absdiff, essaie d'afficher la taille de ses paramètres, tu auras peut-être des surprises. Peut-être qu'un ou plusieurs fichiers n'ont pas pu être lus par imread, ce qui produit une matrice vide, ou que ces images n'ont pas toutes les mêmes dimensions.
|
|
|
00
|
|
|
#10 | ||
|
Candidat au titre de Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 57 ![]() |
Bon, alors j'ai réussi, merci cob !! c'était la dimension l'erreur, pourtant mon prof me dit qu'elles sont toutes de la même dimension.
Aussi, j'ai également modifié la manière de charger la liste d'images. Mais il faut alors lancer le code dans la console, et entrer en paramètre l'endroit ou les endroits où se trouvent les fichiers images. Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com