begin process at 2012 05 30 18:39:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

transformation de niveau de gris d'une image


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

transformation de niveau de gris d'une image

dimanche 11 novembre 2007 à 20:58:03 | transformation de niveau de gris d'une image

laura1978

Salut,
Je suis nouvelle dans ce forum et j'ai un probleme en traitement d'image.
je dois ecrire un algo en c++ pour la transformation du niveau de gris d'une image video
en utilisant la formule qui suit, je dois calculer les valeurs de a et b en utilisant la formule suivante:
g'(x,y)= a* g(x,y)3 + b*g(x,y)2

et en tenant compte des conditions suivantes

g'(x,y)=0 für g(x,y)=0 {function minimal}
g'(x,y)=255 für g(x,y)=255 {function maximal}

SVP avez vous une idee car j'ai déjà tout essayée en vain
je serai contente d'avoir votre aide

laura
lundi 12 novembre 2007 à 09:17:01 | Re : transformation de niveau de gris d'une image

Pistol_Pete

Salut
Avant de convertir ton image en niveau de gris, il faut que je sache si tu arrives à recupérer dans un tableau les valeurs pour tous les pixels des trois canaux R G et B (rouge vert bleu)
Une fois que tu as réussie à faire cela, tu n'as plus qu'à faire la combinaison que tu veux entre ces trois canaux, pour transformer tes 3 canaux en un seul.

Généralement, il suffit de faire: Gris[i][j]=(Red[i][j]+Green[i][j]+Blue[i][j])/3

A+
lundi 12 novembre 2007 à 09:27:31 | Re : transformation de niveau de gris d'une image

laura1978

j'utilise en fait le minapp
mon Programme comence ainsi : je suis allemande et code est commentez en langue allemande

extern FrameGrabber *fg;
extern BYTE *puffer1;        // Originalbild
extern BYTE *puffer2;        // Neunouvelle image

const int links  = Gw_Spreizung_rand;
const int oben   = Gw_Spreizung_rand;
const int rechts = MAX_SPALTE - Gw_Spreizung_rand;
const int unten  = MAX_ZEILE - Gw_Spreizung_rand;

mais ici je dois utiliser plutôt la formule que j'ai donnée en haut une formule pour la transformation non lineaire du niveau de gris



lundi 12 novembre 2007 à 09:37:59 | Re : transformation de niveau de gris d'une image

louis14

guten tag

c'est quoi le 2 et le 3  dans la formule, des puissances , des rangs ( je pense plutôt) et la formule ne doit pas être complète, il manque une couleur.
g'(x,y)= a* g(x,y)3 + b*g(x,y)2

va voir du côté de CXImage , il y a une macro dans les sources qui fait cette transformation couleur-> niveau de gris.

louis14
lundi 12 novembre 2007 à 10:02:29 | Re : transformation de niveau de gris d'une image

laura1978

j'etais dans le CXImage image je n'ai pas pue trouver peux tu m'envoyer le lien?
lundi 12 novembre 2007 à 10:06:16 | Re : transformation de niveau de gris d'une image

Pistol_Pete

D'après ce que je comprend et dis moi si je me trompe, les pixels de ton anciene image sont codé sur un BYTE!
Un byte c'est 8 bits donc 256 valeurs. Il n'y a donc qu'un canal!
Si tu as une image en couleur en etrée, il faudrait mettre:

extern BYTE *pufferRED;          // Originalbild
extern BYTE *pufferGREEN;     // Originalbild
extern BYTE *pufferBLUE;        // Originalbild

extern BYTE *puffer2;        // Neunouvelle image

Pour calculer a et b, je ne comprend pas bien : normalement, il sont fixé une bonne fois pour toute non?
lundi 12 novembre 2007 à 10:26:37 | Re : transformation de niveau de gris d'une image

laura1978

le probleme est que j'aimerai calculer le niveau de gris sur l'ensemble de l'image donc
je fais
extern BYTE *puffer1;        // pour l'image Initiale qui est selon  la formule g(x,y)
extern BYTE *puffer2;        // nouvelle image qui est selon la formule g'(x,y) c.a.d la dérivée de g(x,y)

donc j'ai pas besoin de RGB car je veux calculer ce qu'on appelle en allemand "Grauwert- Spreizung" je ne connais pas la signification exacte en Francais
et donc le prof demander alors de calculer ce "Grauwert- Spreizung" à l'aide de la transformation  non lineaire
qui est alors cette Formule : g'(x,y) = a* g(x,y)3 + b*g(x,y)2 ou je dois à partir des conditions suivantes:
    BYTE gw_max = 0;      //ici  gw_max signifit grauwert maximale
    BYTE gw_min = 255;
determiner les parametres a et b qui me permettrons de resoudre la Transformation non lineare et ensuite je pourrai alors avoir ma nouvelle Image g'(x,y)

lundi 12 novembre 2007 à 10:40:11 | Re : transformation de niveau de gris d'une image

louis14

voilà le lien vers CXImage : [ Lien ]
il faut chercher dans le projet, il y une macro commande du genre RGB2GRAY.
A moins que tu dois restaurer les couleurs à partir du niveau de gris ( cf  ximadsp.cpp).

Effectivement, il manque des précisions pour ton image codée en couleurs. j'ai vu des codages où , il y avait g(x,y) pour RED, g(x+1,y) pour GREEN et g(x+2,y) pour BLUE. Est-ce ton cas?


louis14

lundi 12 novembre 2007 à 10:50:58 | Re : transformation de niveau de gris d'une image

Pistol_Pete

Non Louis, elle a utilisé des notations mathématiques.
g(x,y) représente le niveau de gris du pixel x,y.

Cette notation est utilisée quant tu as un tableau 1D
UCHAR *tab=new UCHAR[Largeur*Hauteur*4];

et la pour balayer ton tab, effectivement tu as:
for(i=0;i<Largeur*Hauteur*4;i+=4)
{
    Blue=tab[i];
    Green=tab[i+1];
    Red=tab[i+2];
}
  

lundi 12 novembre 2007 à 10:55:25 | Re : transformation de niveau de gris d'une image

laura1978

le mien je n'ai pas besoin de tenir compte des informations sur des couleurs.
je dois tout simplement resourdre la formule g'(x,y) = a* g(x,y)3 + b*g(x,y)2 donc je cherche un pseudocode pour le resourdre en determinant a et b et tenant compte des Frontieres g'(x,y)=0 pour g(x,y)=0 {ici minimum de la function}et g'(x,y)=255 pour g(x,y)= 255{ici maximum de la function}

donc en fait j'ai une image Video g(x,y) et j'aimerai avoir une nouvelle image g'(x,y) en tenamt compte de cette Transformation non lineare g'(x,y) = a* g(x,y)3 + b*g(x,y)2 c'est tout je n'ai pas besoin d'infos sur le RGB


1 2 3

Cette discussion est classée dans : image, niveau, transformation, gris, formule


Répondre à ce message

Sujets en rapport avec ce message

convertir une image de 256 en 1024 niveau de gris [ par pirate75000 ] comment convertir une image de 256 niveau de gris 8 bits en une image de 1024 ou 2048 niveau de grisen 10 ou 12 bits Programme réalisant image en niveau de gis avec Coordonnées (x,y,z) [ par raftanelle ] Je cherche un programme en C++, VB, ou autres me permettant de créer des images en niveau de gris. Le niveau de gris dépend de la hauteur Z. Les coord Niveau de gris [ par jujukakou ] bonjour a tous et merci d'avance pour votre aide Je suis à la recherche d'un petit logiciel en C qui puisse convertir une image en niveau de gris il Image bmp à niveau de gris [ par nadine2511 ] Bonjour,je voudrais lire, traiter pixel à pixel et enregistrer une image à niveau de gris bmp (8 bits) mais je ne sais pas comment on fait. Si quelqu' image 16 bit niveau de gris [ par stenbelive ] Salut,est-ce que quelqu'un saurait comment créer une image 16 bit en niveaux de gris par le biais d'un tableau?sten calcul perimetre ,surface et moment des regions d une image a niveau de gris [ par stevekitio ] je suis eleve ingenieur a l'ecole nationale superieure polytechnique du cameroun dans le cadre d un projet scolaire il nous a ete demende de prop Segmentation d'une image par région en C [ par Minou09 ] Bonjour, J'espère que j'ai créé mon sujet dans la bonne catégorie. Voila mon problème, je cherche à créer un programme en C permettant de segmenter u histogramme image ppm [ par cheberli ] salut mes amis les developpeursje voudrais developper un programme qui permet d'afficher lhistogramme d'une image ppm couleur (histogramme sous forme segmentation d'image niveau gris en région [ par joud07 ] Bonjour à tous je veux connaitre comment segmenter une image en niveau de gris en région? plutot, espérant de m'envoyer un code source m'explique co lecture PNG niveau de gris avec libpng [ par jguy ] <div style="width: 560px; overflow-x: auto; overflow-y: hidden;" id="ctl00_CPH1_Message_UCForumMessage1_DGMsg_ctl04_divC


Nos sponsors


Sondage...

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 : 4,430 sec (3)

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