[RESOLU]conversion bmp en niveau de gris
salut, j'ai un projet a réaliser comme tous les ans et la j'ai un pb avec ce minuscule algo ... :?
je converti une image bmp qui ce trouve dans une Timage en niveau de gris :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| void TForm1::Imageniveauxdegris1(TImage *Image)
{
int i,j,r,g,b;
float y;
Image->AutoSize = true;
TImage *Image2 = new TImage(0);
Image2->Height = Image->Height;
Image2->Width = Image->Width;
for (j=1;j<Image->Height ;j++ )
{ for (i=1;i<Image->Width ;i++ )
{ g = GetGValue(Image->Canvas->Pixels[i][j]);
b = GetBValue(Image->Canvas->Pixels[i][j]);
r = GetRValue(Image->Canvas->Pixels[i][j]);
y = 0.299*g + 0.587*r + 0.114*b;
Image2->Canvas->Pixels[i][j] = y;
}
}
Image2->Picture->SaveToFile(ListeFichiers->Strings[compt] + "Binar2.bmp");
} |
ca n'a pas l'air mal du tout mais mon image est rouge ...
meme avec un code de ce type :
Code:
y = 0.299*g + 0.587*b + 0.114*r;
mon pb ce trouve peu etre au niveau de l'affectation du niveau de gris ... il faut pi etre mettre cette valeure sur les 3 composante RGB ? :?
merci !!!
Re: conversion bmp en niveau de gris
Citation:
Envoyé par hholivier
mon pb ce trouve peu etre au niveau de l'affectation du niveau de gris ... il faut pi etre mettre cette valeure sur les 3 composante RGB ? :?
merci !!!
Bingo, il faut effectivement affecter la valeur obtenue (luminance) au trois composantes RGB. (au passage, penses à typer le float y en unsigned char)...