Salut
Je manipule dans mon application des images en niveau de gris, j�ai cod� une fonction nomm�e Niv2Gris pour transformer l�image charg�e en niveau de gris dont le but est de manipuler dans la suite des traitements une seule composante (la composante en niveau de gris que je lui associ� la variable (propri�t� dans la classe TForm1) nomm�e Gris.
Voil� le code de la fonction Niv2Gris :
Au chargement de l�image j�appelle la fonction Niv2Gris:
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 void __fastcall TForm1::Niv2Gris(Graphics::TBitmap * Srce,TImage *ImgS, Graphics::TBitmap * Dest,TImage *ImgD) { we = Srce->Width; he = Srce->Height; P = (jRgb*)Srce->ScanLine[0]; L = (jRgb*)Srce->ScanLine[1]; ImgD->Width = ImgS->Width; ImgD->Height = ImgS->Height; for(int y = 2; y < he; y++) { N = (jRgb*)Srce->ScanLine[y]; T = (jRgb*)Dest->ScanLine[y-2]; for(int x = 0; x < we; x++) { Gris = (P[x].Blue + P[x].Green + P[x].Red)/3; T[x].Blue = (Byte)Gris; T[x].Green = (Byte)Gris; T[x].Red = (Byte)Gris; } P = L; L = N; } ImgD->Repaint(); } }
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 if(OpenPictureDialog1->Execute()) { Form1->Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName); ImgS=Image1; ImgD=Image1; Srce = Image1->Picture->Bitmap; Dest = Image1->Picture->Bitmap; Niv2Gris(Srce,ImgS,Dest,ImgD); }
Mon fichier .h contient:
maintenant ImgD contient l'image en niveu de gris, je cherche comment acceder aux elements de ImgD (l'image en niveau de gris) par la methode ScaneLine?
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
16
17
18
19
20 public: // Déclarations de l'utilisateur int Gris, he,we ; Graphics::TBitmap *Srce; Graphics::TBitmap *Dest ; TImage *ImgS; TImage *ImgD; class jRgb { public : Byte Blue; Byte Green; Byte Red; }; jRgb* P; jRgb* N; jRgb* L; jRgb* T;
Merci d'avance !
Partager