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