Bonjour à tous,
je suis confronté à un problème, j'imagine surement une erreur bête. Je démarre seulement et me suis auto-formé au C++, ne connaissant que le C.
L'objectif du programme est de faire une acquisition d'images, les enregistrer. Cette partie fonctionne bien, j'enregistre mes images au format BMP.
La seconde partie demande d'importer une série d'image existante, enregistré par ce programme et de les traiter comme si elles étaient prises par la caméra (bien sur, sans les enregistrer).
Dans la première partie, le traitement fonctionne bien, l'enregistrement aussi. Dans la seconde partie, j'arrive à afficher une fenêtre "parcourir", aller chercher un fichier et récupérer l'adresse exacte des 6 images à ouvrir. (1 acquisition = 7 images).
Cependant, je bloque au moment d'ouvrir les images, la matrice ne se remplis pas, je vous donne quelques parties de code, qui seront les seules utiles, je pense.
Tout d'abord, les images enregistrées:
Lecture des images:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 cv::Mat tabImage[7]; //Variable globale for (int i = 0; i < 7; i++) { //Création du fichier image std::string filename = "./imageMulti_Acqu_"; filename += std::to_string(nb_Dif_Img); filename += "pic_"; filename += std::to_string(i); filename += ".bmp"; cv::imshow(filename.c_str(), tabImage[i]); cv::waitKey(0); cv::imwrite(filename, tabImage[i]); }
Le fichier Adresse[i] contient des adresses du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 cv::Mat *Tabimage[7] ; //Récupération des vecteurs images provenant des fichiers for (i = 0; i < 7; i++) { //Tabimage[i] = imread(Adresse[i]); *Tabimage[i]=cvLoadImageM(Adresse[i], 0); cv::imshow(NomFichier2, *Tabimage[i]); }
"C:\Users\Travail\Desktop\Fichiers Travail\Projet\Nom_Image_1"
dans chaque case "i".
(vérifié et validé en pas à pas, le nom ici est générique et ne correspond pas aux appellations du projet réels)
J'ai voulu passer par imread qui renvois une matrice, hors Tabimage reste vide. Idem pour cvLoadImageM.
Le imshow est la pour valider le fonctionnement, et forcément, plante systématiquement vu qu'on lui demande d'afficher une matrice vide.
Avant de sauter par la fenêtre d'un bureau d'un voisin du dessus (oui, au 1er étage ça ne sert a rien), j’espère que vous pouvez me sauver
Merci à tous d'avoir pris le temps de me lire, et j’espère ne pas faire un doublon, mais si certains sujet ressemblent ça cela, je n'ai pas trouvé réponse a mes interrogations!
Partager