begin process at 2010 02 10 08:51:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Ouverture de fichiers images


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ouverture de fichiers images

lundi 24 avril 2006 à 09:21:54 | Ouverture de fichiers images

elo29

Bonjour,

Je travaille sur un projet dans lequel je dois capturer une vidéo, en extraire les images et appliquer un traitement à chacune d'entre elles. Pour le moment, j'ai réalisé chaque code indépendemment des autres (extraction des frames et enregistrement de celles-ci dans un dossier, recupération des frames dans ce même dossier avec FindNextFile et FindFirstFile et enfin mon traitement d'image appliqué à une image).
Je voudrais maintenant tout réunir et appliquer mon traitement à toutes les images du dossier. J'ai utilisé "fopen" pour le traitement sur une seule image afin de l'ouvrir et je ne sais pas quelle fonction utiliser pour ouvrir les images les unes après les autres afin d'y appliquer le traitement.


Pouvez-vous m'aider s'il vous pait?  Merci!!
lundi 24 avril 2006 à 11:11:01 | Re : Ouverture de fichiers images

yoyo269

Membre Club
Utilise une boucle pour faire un fopen sur chaque fichier image, en t'aidant de FindNextFile.

YOYO, @+.
[font=Comic Sans MS][size=3][b][green][:D] YOYO [;)][/green][/b][/size=3][/font=Comic Sans MS]
lundi 24 avril 2006 à 11:33:55 | Re : Ouverture de fichiers images

elo29

Merci pour ta réponse!!

En fait j'utilise ce code pour énumérer les fichiers de mon dossier :

hfind=FindFirstFile("*.*",&wfd);
if(hfind==INVALID_HANDLE_VALUE)return 0;
do{
cout<<wfd.cFileName<<"\n";
}while(FindNextFile(hfind,&wfd));
FindClose(hfind);

Il faudrait que j'insère mon traitement d'images dans le "do" mais je ne sais pas comment appliquer mon fopen : fopen(wfd.cFileName,"rb"); ??? Pour récupérer à chaque fois le nom de l'image qui est en cours de lecture.
lundi 24 avril 2006 à 11:48:24 | Re : Ouverture de fichiers images

yoyo269

Membre Club
Oui c'est ça ! Tu dois ouvrir le fichier dans le do et le refermer également :

FILE * Fichier;
hfind=FindFirstFile("*.*",&wfd);
if(hfind==INVALID_HANDLE_VALUE)return 0;
do{
cout<<wfd.cFileName<<"\n";

Fichier = fopen(wfd.cFileName,"wb"); // ouverture pour écriture
// TRAITEMENT
fclose(Fichier);

}while(FindNextFile(hfind,&wfd));
FindClose(hfind);

YOYO, @+.
[font=Comic Sans MS][size=3][b][green][:D] YOYO [;)][/green][/b][/size=3][/font=Comic Sans MS]
lundi 24 avril 2006 à 14:31:51 | Re : Ouverture de fichiers images

elo29

OK merci, mais il faut juste mettre des guillemets("wfd.cFileName","wb") pour que ça marche. Cependant j'ai un autre souci, il ajoute les valeurs demandées au fur et à mesure des images. Par exemple, j'ai un seuil S=190 dans la première image et de S=20 dans la deuxième et lui va me mettre S=190+20= 210 pour la deuxième et ainsi de suite.  
lundi 24 avril 2006 à 14:40:18 | Re : Ouverture de fichiers images

yoyo269

Membre Club
Surtout pas de guillemets !!! Sinon ça sert à rien de rechercher les fichiers qui sont dans ton dossier.
Si tu laisses comme ça, il va chercher à ouvrir un fichier qui s'appellerait "wfd.cFileName".
Pour ton pb de valeur, mets du code parce que avec ce que tu me dis je peux pas t'aider.

YOYO, @+.
[font=Comic Sans MS][size=3][b][green][:D] YOYO [;)][/green][/b][/size=3][/font=Comic Sans MS]
lundi 24 avril 2006 à 14:55:18 | Re : Ouverture de fichiers images

elo29

Voici mon code et si quand je ne mets pas les "" il n'ouvre pas les images contenues dans le dossier images de mon projet. Il ne les ouvre que si je les sors du dossier.

#include <Windows.h>
#include <iostream.h>
#include <stdio.h>


#define largeurimage 640
#define hauteurimage 480
#define N 501
#define M 54


int main () {

unsigned char *imageBMP;
imageBMP=(unsigned char *)malloc(3*largeurimage*hauteurimage*sizeof(unsigned char));
int *tempimBMP;
int **image;
int **imbsens;
unsigned char tmp[N];
int somme=0;
int seuil;
int i,j;
tempimBMP=(int*)malloc(largeurimage*hauteurimage*sizeof(int));

FILE* fichier;

WIN32_FIND_DATA wfd;
HANDLE hfind;
hfind=FindFirstFile("c:images\\*.bmp",&wfd);
if(hfind == INVALID_HANDLE_VALUE) return 0;
do {
fichier=fopen(wfd.cFileName,"rb");
if(!fichier)
{
printf ("Probleme d'ouverture du fichier image\n");
return 0;
}

fread (tmp,M,1,fichier);
fread (imageBMP,3*hauteurimage*largeurimage,1,fichier);
fclose(fichier);

for(i=0;i<largeurimage*hauteurimage;i++)
{
tempimBMP[i]=(int)(0.23*imageBMP[i*3]+0.59*imageBMP[i*3+1]+0.11*imageBMP[i*3+2]);//Passage en niveau de gris
}
//Allocation mémoire de l'image
image=(int**)malloc(largeurimage*sizeof(int*));

for (i=0;i<hauteurimage;i++)
{
image[i]=(int*)malloc (largeurimage*sizeof(int));
}

//Allocation mémoire de l'image dans le bon sens
imbsens=(int**)malloc(largeurimage*sizeof(int*));

for (i=0;i<hauteurimage;i++)
{
imbsens[i]=(int*)malloc (largeurimage*sizeof(int));
}



//Initialisation de l'image à tester en niveau de gris (0-256)

for (i=0;i<hauteurimage;i++)
{
for(j=0;j<largeurimage;j++)
{
image[i][j]=tempimBMP[j+i*largeurimage];
}
}


//Calcul du seuil de l'image

for(i=0;i<hauteurimage;i++)
{
for (j=0;j<largeurimage;j++)
{
somme+=image[i][j];
}
}
seuil=2*somme/(hauteurimage*largeurimage);

for(i=0;i<hauteurimage;i++)
{
for (j=0;j<largeurimage;j++)
{
imbsens[i][j]=image[hauteurimage-1-i][j];
}
}

cout<<wfd.cFileName<<"\n";

} while (FindNextFile(hfind,&wfd));
FindClose(hfind);

return 0;
}



lundi 24 avril 2006 à 15:04:05 | Re : Ouverture de fichiers images

yoyo269

Membre Club
Change cette ligne :
hfind=FindFirstFile("c:\\images\\*.bmp",&wfd);

Sinon, j'y connais rien en traitement d'image mais si tu cherches à modifier qq chose aux images, je vois pas comment tu peux faire sans jamais écrire dans le fichier image.

YOYO, @+.
[font=Comic Sans MS][size=3][b][green][:D] YOYO [;)][/green][/b][/size=3][/font=Comic Sans MS]
lundi 24 avril 2006 à 15:06:27 | Re : Ouverture de fichiers images

elo29

Je ne modifie rien aux images, je ne fais qu'extraire des informations des pixels.
En tout cas merci pour ton aide, A+
lundi 24 avril 2006 à 15:11:21 | Re : Ouverture de fichiers images

yoyo269

Membre Club
Et maintenant ça fonctionne ?

YOYO, @+.
[font=Comic Sans MS][size=3][b][green][:D] YOYO [;)][/green][/b][/size=3][/font=Comic Sans MS]

1 2 3 4

Cette discussion est classée dans : images, dossier, image, traitement, appliquer


Répondre à ce message

Sujets en rapport avec ce message

traitement d'image [ par rodrigo22 ] Je travaille actuellement sur un projet ou je dois etudier la deformation d'une image lorsque l'on projette celle ci sur une surface non perpendiculai Traitement d'images [ par Supopste ] Bonjour à tous et à toutes,J'aimerais savoir quelle était la méthode la plus efficace pour traiter des images. Je m'explique, stocker une image dans u traitement d'image [ par rakicky ] salut a tousvoila,j'ai un travail sur le traitement d'imageOn m'a dis de creer des fonctions capable de detecter le contour d'image en C et de le test traitement d'images [ par thamoura ] j'essai de créer un programme qui ouvre un image bitmap cherche la zone texte existante dans l'image je crypte cette zone puis je faits le tatouage de Erosion et dilatation d'image - Traitement d'images [ par mahdouch1 ] Bonjour,Est ce que quelqu'un peut me fournir un code source C qui fait l'érosion et la dilatation d'une image en niveaux de gris merci beaucoup d'avan Traitement d'image [ par GMeryam ] Bonjour, Je dois avoir une idée sur les différents applications de traitement d'images sous Matlab. S'il vous plait si vous avez des cours et des trav Traitement d'image jpeg en c [ par Allamo777 ] Bonjour,Ceci est mon premier message et je dois bien avouer que je commence tout juste dans le monde de la programmation...Voilà mon problème : Je che Librairie BUILDER C++ Proba-Stat-Traitement Image Signal-Markov [ par builder54 ] Bonjour,Je travaille depuis quelque temps sur la segmentation Markovienne d'images aériennes en utilisant Builder C++.J'étais emmené à tout programmer traitement d'image avec c++ [ par dadou846 ] salut,j'ai une image (.tiff) en niveaux de gris et je veux lui appliquer les opérateurs de la morphologie mathématique avec c++.je cherche une fonctio traitement d'image des codes à barres [ par janouta ] Bonjour, j'aimerai bien avoir un code source de traitement d'image pour les codes à barres afin de comprendre le concept , ou bien quelqu'un po


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales