begin process at 2012 05 30 10:50:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

Projet traitement image.


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

Projet traitement image.

dimanche 11 décembre 2011 à 13:56:27 | Projet traitement image.

vpolo4

Bonjour,
Dans le cadre de mon cursus d'ingénieur, je dois réaliser un projet en C++ sur le traitement d'image, c'est à dire réaliser une interface sur la console afin d'ouvrir une image, lui affecté des modifications (flou, negatif...) et la ré-enregistrer. j'ai déjà crée l'interface, obtenu les codes sources mais quelque chose ne marche pas, j'ai oublier quelque chose, comme si chaque void ne renvoyer rien. Pourriez vous regarder ce qui ne va pas si vous avez un peu temps de libre (je n'ai pas mis tout le code par soucis de place et de clarté)
Merci d'avance


#include <iostream>
#include <fstream>
#include <string>

using namespace std;

//initialisation des différentes fonctions

string ident,comment;
int largeur, hauteur, pixel_maxi, i, j;
int tab[1200][1200];
char unoctet ;

//ident = Variable de début des fichiers pgm ou ppm (magic code)
//largeur = largeur de la matrice du fichier pgm
//hauteur = hauteur de la matrice du fichier pgm
// pixel_maxi = valeur maximum qu'un pixel peut avoir
//i = ligne de la matrice du bitmap
//j = colonne de la matrice du bitmap
//tab = tableau dans lequel on va placer les chiffres des pixels



//fonction chargement
void lecture(){
string nom_image; //variable du nom de l'image
cout << "Entrez le nom de l'image" << endl;
cin >> nom_image;
ifstream fin (nom_image.c_str());
fin >> ident;
if (ident != "P5") { cout << "type d&#8217;image non traitée " <<endl ;
return ; // modifier selon le type
}
//fin.get(unoctet) ;

fin >> largeur >> hauteur;
fin >> pixel_maxi;
cout << "largeur "<< largeur<< "hauteur "<< hauteur << endl;
for (i = 0; i<hauteur ;i++){
for (j = 0; j<largeur; j++){
fin >> tab[i][j];
}
}
cout<<"Image chargee"<<endl;
}

// fonction ecrire
void ecrire(){
string image_sauvegardee;

cout << "Entrez le nom du fichier de sauvegarde" << endl;
cin >> image_sauvegardee;
ofstream fout (image_sauvegardee.c_str());
fout << ident << endl;
fout << largeur << " " << hauteur << endl;
fout << pixel_maxi << endl;
for (i=0 ; i<hauteur ; i++){
for (j=0 ; j<largeur ; j++){
fout << tab[i][j] << " ";
}
fout<<endl;
}
}

//fonction luminosité
void luminosite(){
int degre;
cout<<"Introduisez la valeur de votre changement de luminosite " << endl;
cout<<"(Introduisez un nombre negatif si vous voulez noircir.)" << endl;

cin>> degre;

for (i=0 ; i<hauteur ; i++){ //avec ces deux boucles for on va pouvoir rajouter ou enlever un certain // nombre à tous les pixels
for (j=0 ; j<largeur ; j++){
tab[i][j]=tab[i][j] + degre;

if (tab[i][j]<0){ tab[i][j]=0; }
else if (tab[i][j]>255) tab[i][j]=255;
} // fin if < 0
} // fin for j
} // fin for i


//fonction principale pour montrer un exemple de menu
int main () {

int numero;
// numero = le chiffre entré par l'utilisateur en fonction de son choix dans le menu

do {
cout << "\t \t Menu" << endl;
cout << endl;
cout << "0) Charger une image" << endl;
cout << "1) Sauvegarder une image" << endl;
cout << "2) Changer la luminosite" << endl;
cout << "3) Decouper l'image" << endl;
cout << "4) Produire le negatif" << endl;
cout << "5) Produire un flou gaussien" << endl;
cout << "6) quitter" << endl;
cout <<endl;
cout << " Choisissez votre numero" << endl;
cout << endl;

cin >> numero;

switch (numero){
case 0: lecture (); cout << endl; break; // on fait appel à la fonction lecture
case 1: ecrire(); cout<< endl; break; // on fait appel à la fonction ecrire
case 2: luminosite(); cout << endl; break; // on fait appel à la fonction luminosite
case 3: decoupe(); cout << endl; break; // on fait appel à la fonction decoupe
case 4: negatif(); cout << endl; break; // on fait appel à la fonction negatif
case 5: gaussien(); cout << endl; break; // on fait appel à la fonction flou gaussien
case 6: quitter(); cout << endl; break; // on fait appel à la fonction quitter
}
if (numero>6 || numero<0){
cout << "vous avez tape un mauvais choix" <<endl;
cout << endl;
}
} while (numero != 6);
return 0;
}
dimanche 11 décembre 2011 à 14:50:50 | Re : Projet traitement image.

buno

Administrateur CodeS-SourceS
Hello,
Je n'ai pas regardé le code (merci, d'ailleurs, d'utiliser les balises "code" pour une meilleure lisibilité) mais j'ai quelques remarques:

j'ai déjà crée l'interface, obtenu les codes sources mais quelque chose ne marche pas


Pourquoi tu écris "obtenu"? N'aurais-tu pas fait tes devoirs? . Ensuite, "quelque chose ne marche pas..." J'ai bien commandé une boule de cristal mais elle n'est pas encore arrivée...Pourrais-tu nous en dire plus?

comme si chaque void ne renvoyer rien.


Toi, tu as loupé des cours C'est le principe de void :
Code C/C++ :
void maMethode(int param);

--> ça signifie que la méthode maMethode ne retourne rien

@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
lundi 12 décembre 2011 à 08:50:08 | Re : Projet traitement image.

Renfield

Administrateur CodeS-SourceS

vive le crash si ton image dépasse les 1200x1200 ...

n'as tu pas besoin de skipws ?
les specs du format pgm prévoient la possibilité d'avoir des commentaires... tu ne les gère pas.

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
lundi 12 décembre 2011 à 09:16:45 | Re : Projet traitement image.

buno

Administrateur CodeS-SourceS
@Renfield: on est dans un cadre scolaire Les images sont connues (pas plus grande que 512x512 je pense) et les commentaires sont inutiles.
Après, je suis d'accord que ce n'est pas géré mais, pour son usage, on va dire que c'est du bonus.


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
lundi 12 décembre 2011 à 10:09:52 | Re : Projet traitement image.

Renfield

Administrateur CodeS-SourceS
Je serai prof, je me ferai un malin plaisir de donner des points a ceux qui auraient géré cette eventualité.

ne serait-ce que de dire : image trop grande quand le cas se présente


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
lundi 12 décembre 2011 à 10:35:20 | Re : Projet traitement image.

buno

Administrateur CodeS-SourceS
Certes. Mais ça reste du bonus


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
mardi 13 décembre 2011 à 20:01:21 | Re : Projet traitement image.

vpolo4

@bruno:

En réalité mon projet informatique consiste en un travail de recherche et donc de récuperer des sources, afin de le modifiés et de les adapter pour que tout cela puisse fonctionner dans une interface.

En effet, je me suis mal expliqué sur les difficultés que je rencontre, mes connaissances en informatique sont assez basiques donc je vais essayer d'etre clair.
Chaque fonction est codée correctement je pense mais on dirait qu'elles ne communiquent pas bien ensemble. Après execution du programme, l'image à subit une modification, ce qui (je pense) montre qu'il y a bien de l'interaction entre le menu et les fonctions, mais lorsque on ouvre l'image, ce n'est plus qu'une alternance de lignes grises et noires.

Pour ce qui est de skipws, c'est peut etre un peu trop compliqué pour moi et les images que j'utilise sont connus :)
jeudi 15 décembre 2011 à 10:14:30 | Re : Projet traitement image.

buno

Administrateur CodeS-SourceS
Après relecture, je pense que tu veux nous dire que tu n'arrives pas à passer des paramètres aux fonctions. C'est bien ça?
Je te propose donc de commencer par écrire une classe Image, qui contiendra certains membres tel la taille, le type d'images, la matrice de pixels, etc. et des méthodes tel lecture(), ecriture(),...
Regarde ma source traitant des fichiers BMP par exemple.


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...


Cette discussion est classée dans : image, hauteur, cout, largeur, ident


Répondre à ce message

Sujets en rapport avec ce message

image cximage [ par cpierrenet ] salut les amis,depuis qqs jours je cherche comment modifier la hauteur et la largeur d'une image jpg,je travail avec c++ vs06 ,windows ,j'utilise la l Problème avec pointeurs private dans une classe [ par vvdbvivien07 ] Bonjour, Je suis en train de réaliser un traitement d'image en c++ et voici mon problème: L'utilisateur doit rentrer le nom d'un fichier pgm et le pr MENU IMAGE DECALER HAUTEUR LIGNE [ par lectpe ] Bonjour,J'ai fait une application avec un menu et chaque élément du menu est associé à une image.Seulement, l'image que je mets est rognée à droite et [DEBUTANT] pb de reference [ par MATHIS49 ] bonjour pour apprendre, j'essai de faire passer un tableau en reference dans une fonction , mais j'ai une erreur dont je n'ai pas trouvé de reponse su Scroll [ par galax98 ] Bonjour Excusez moi car cette question est certainement très basique. J'ouvre une fenêtre qui contient une image de hauteur 1000. Ma fenêtre n'a une h hauteur et largeur de texte [ par salim_samir ] salut à tous comment je peut modifie la taille d'une texte affiché sur l'ecran en langage c,par exemple printf("salut"); comment je peut modifie le mo projection de matrice [ par diable007 ] bonjour, j'ai besoin de faire cette transformation à ma matrice:exemple 011             010             101  devient              111          longueur et largeur d'une image BITMAP. [ par Adeon ] Salut!QQ peut il me dire la fonction en API qui donne la longueur et la largeur d'une image BITMAP. Adeon Largeur et hauteur d'un bitmap a partir d'un DC [ par DJBACON_17 ] SalutJe cherche le moyen de recuperer la largeur et la hauteur d'un bitmap a partir de son DC.Quelqu'un pourrait m'aider svp?merci d'avance.DJBACON_17


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,374 sec (3)

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