Utilisateur anonyme
-
6 juil. 2002 à 19:13
arckhenstone
Messages postés19Date d'inscriptionlundi 30 mars 2009StatutMembreDernière intervention29 juillet 2009
-
31 mars 2009 à 14:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
poste tes questions sur le forum parce qu'ici tu auras très peut de chances d'avoir une réponse !!!!
arckhenstone
Messages postés19Date d'inscriptionlundi 30 mars 2009StatutMembreDernière intervention29 juillet 2009 31 mars 2009 à 14:07
Voila j'ai réussi à mettre mon image en noir et blanc sans aucun soucil.
Meric pour votre aide.
procedure TForm1.BiChromieClick(Sender: TObject);
Const
seuil=128;
filtrage=$ffffff; //blanc
Var
x,y,A,B:word;
begin
x:=A+1;
x:=B-1;
for x:=0 to image1.picture.width-1 do
begin
for y:=0 to image1.picture.Height-1 do
begin
if image1.Picture.Bitmap.Canvas.Pixels [x,y]and $ff>seuil then
image1.Picture.Bitmap.Canvas.Pixels [x,y]:=$ffffff else image1.Picture.Bitmap.Canvas.Pixels [x,y]:=$000000;
end;
end;
end;
Lol maintenant il faudrait que grâce à mon image noir et blanc je trouve le centre de gravité de l'image en utilisant le calcul des moments géométriques. Et aussi, complétement à part, que je mette dans un afficheur la luminosité moyenne de l'image
Lol dure la première semaine à faire du DELPHI :s
c'est pas un problème cliques sur UTramage.pas et tu pourras visualiser le code et faire un copier coller au pire
arckhenstone
Messages postés19Date d'inscriptionlundi 30 mars 2009StatutMembreDernière intervention29 juillet 2009 31 mars 2009 à 11:19
j'y ai déjà été, mais malheureusement, avec l'ordi qu'il m'ont filé sur mon lieu de stage je ne peux rien dlw... donc je ne peux pas accéder au ligne du code...
Merci quand même Cirec.
arckhenstone
Messages postés19Date d'inscriptionlundi 30 mars 2009StatutMembreDernière intervention29 juillet 2009 31 mars 2009 à 10:21
Yes !!! maintenant mon image est bien tramer en noir et blanc MAIS lol :(
il y a de multiples pixels blanc comme si mon image n'était pas propre
par exemple j'ai une image toute noire avec un cercle blanc dessus et en fait autour du cercle blanc
j'ai une panoplie de petit point blanc :s
voici le nouveau code :
procedure TForm1.BiChromieClick(Sender: TObject);
Const
seuil=128;
Var
x,y:word;
begin
for x:=0 to image1.picture.width do
begin
for y:=0 to image1.picture.Height do
begin
if image1.Picture.Bitmap.Canvas.Pixels [x,y]>seuil then
image1.Picture.Bitmap.Canvas.Pixels [x,y]:=rgb(255,255,255) else image1.Picture.Bitmap.Canvas.Pixels [x,y]:=0;
end;
end;
end;
encore merci pour ton aide Renfield :D c'est super sympa !
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 31 mars 2009 à 09:37
testes le seuil sur la valeur de gris.
et blanc, c'est pas 255
mais rgb(255,255,255)
arckhenstone
Messages postés19Date d'inscriptionlundi 30 mars 2009StatutMembreDernière intervention29 juillet 2009 31 mars 2009 à 09:02
Donc ca me donnerai en gros ça comme code ?
je dois avoir des erreur ... ca ne marche pas :(
procedure TForm1.BiChromieClick(Sender: TObject);
const
seuil=128;
var
x,y:word;
begin
for x:=0 to image1.picture.width do // pour les x
begin
for y:=0 to image1.picture.height do // pour les y
begin
if image1.Picture.Bitmap.Canvas.Pixels [x,y]>seuil then
image1.Picture.Bitmap.Canvas.Pixels [x,y] =255 else image1.Picture.Bitmap.Canvas.Pixels [x,y]=0;
end;
end;
end;
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 30 mars 2009 à 10:47
c'est exactement la même chose que ce qui t'es proposé ici.
a toi de choisir le seuil a partir duquel une couleur sera représentée en noir, ou en blanc...
arckhenstone
Messages postés19Date d'inscriptionlundi 30 mars 2009StatutMembreDernière intervention29 juillet 2009 30 mars 2009 à 10:38
quelqu'un aurait un site ou un lien web a me conseiller pour un programme qui permet de mettre une image en NOIR et BLANC et pas en niveau de gris ?
Merci d'avance.
Sinon comme pour ender27, mon image est grossie après la mise en niveau de gris?
arckhenstone
Messages postés19Date d'inscriptionlundi 30 mars 2009StatutMembreDernière intervention29 juillet 2009 30 mars 2009 à 09:40
Ton code ne fonctionne pas Balgrim... enfin pas sur ma version DELPHI (j'utilise la 7)
ender27
Messages postés7Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention 2 juin 2008 11 mars 2008 à 11:32
J'ai un problème avec le code de morpheus, car lorsque l'image apparaît dans le TImage numéro2, elle se trouve agrandie par rapport à l'image de départ. Savez-vous d'où vient ce problème?
balgrim
Messages postés52Date d'inscriptionvendredi 26 avril 2002StatutMembreDernière intervention28 octobre 2003 26 oct. 2002 à 21:24
sa doit etre plus rapide...
@ller, bye
Balgrim[oire]
balgrim
Messages postés52Date d'inscriptionvendredi 26 avril 2002StatutMembreDernière intervention28 octobre 2003 26 oct. 2002 à 21:23
var
x,y:integer;
pix:dword;
r,g,b:byte;
moyenne:byte;
begin
for x:=1 to image1.picture.width do //on prend une ligne
begin
for y:=1 to image1.picture.height do //les colonnes de cette ligne
begin
pix:=image1.canvas.Pixels[x,y]; //on prend les couleurs RVB
asm
push eax
mov eax,pix
mov r,al
mov g,ah
shr eax,16
mov b,al
pop eax
end;
moyenne:=Byte((r+g+b)/3)
image2.Canvas.pixels[x,y]:=rgb(moyenne,moyenne,moyenne); //ecriture du pixel en N&B a la même place sur l'autre Timage
end;
end;
31 mars 2009 à 14:38
31 mars 2009 à 14:14
poste tes questions sur le forum parce qu'ici tu auras très peut de chances d'avoir une réponse !!!!
31 mars 2009 à 14:07
Meric pour votre aide.
procedure TForm1.BiChromieClick(Sender: TObject);
Const
seuil=128;
filtrage=$ffffff; //blanc
Var
x,y,A,B:word;
begin
x:=A+1;
x:=B-1;
for x:=0 to image1.picture.width-1 do
begin
for y:=0 to image1.picture.Height-1 do
begin
if image1.Picture.Bitmap.Canvas.Pixels [x,y]and $ff>seuil then
image1.Picture.Bitmap.Canvas.Pixels [x,y]:=$ffffff else image1.Picture.Bitmap.Canvas.Pixels [x,y]:=$000000;
end;
end;
end;
Lol maintenant il faudrait que grâce à mon image noir et blanc je trouve le centre de gravité de l'image en utilisant le calcul des moments géométriques. Et aussi, complétement à part, que je mette dans un afficheur la luminosité moyenne de l'image
Lol dure la première semaine à faire du DELPHI :s
Une idée ? lol
31 mars 2009 à 11:47
31 mars 2009 à 11:19
Merci quand même Cirec.
31 mars 2009 à 10:21
il y a de multiples pixels blanc comme si mon image n'était pas propre
par exemple j'ai une image toute noire avec un cercle blanc dessus et en fait autour du cercle blanc
j'ai une panoplie de petit point blanc :s
voici le nouveau code :
procedure TForm1.BiChromieClick(Sender: TObject);
Const
seuil=128;
Var
x,y:word;
begin
for x:=0 to image1.picture.width do
begin
for y:=0 to image1.picture.Height do
begin
if image1.Picture.Bitmap.Canvas.Pixels [x,y]>seuil then
image1.Picture.Bitmap.Canvas.Pixels [x,y]:=rgb(255,255,255) else image1.Picture.Bitmap.Canvas.Pixels [x,y]:=0;
end;
end;
end;
encore merci pour ton aide Renfield :D c'est super sympa !
31 mars 2009 à 09:37
et blanc, c'est pas 255
mais rgb(255,255,255)
31 mars 2009 à 09:02
je dois avoir des erreur ... ca ne marche pas :(
procedure TForm1.BiChromieClick(Sender: TObject);
const
seuil=128;
var
x,y:word;
begin
for x:=0 to image1.picture.width do // pour les x
begin
for y:=0 to image1.picture.height do // pour les y
begin
if image1.Picture.Bitmap.Canvas.Pixels [x,y]>seuil then
image1.Picture.Bitmap.Canvas.Pixels [x,y] =255 else image1.Picture.Bitmap.Canvas.Pixels [x,y]=0;
end;
end;
end;
30 mars 2009 à 10:47
a toi de choisir le seuil a partir duquel une couleur sera représentée en noir, ou en blanc...
30 mars 2009 à 10:38
Merci d'avance.
Sinon comme pour ender27, mon image est grossie après la mise en niveau de gris?
30 mars 2009 à 09:40
11 mars 2008 à 11:32
26 oct. 2002 à 21:24
@ller, bye
Balgrim[oire]
26 oct. 2002 à 21:23
x,y:integer;
pix:dword;
r,g,b:byte;
moyenne:byte;
begin
for x:=1 to image1.picture.width do //on prend une ligne
begin
for y:=1 to image1.picture.height do //les colonnes de cette ligne
begin
pix:=image1.canvas.Pixels[x,y]; //on prend les couleurs RVB
asm
push eax
mov eax,pix
mov r,al
mov g,ah
shr eax,16
mov b,al
pop eax
end;
moyenne:=Byte((r+g+b)/3)
image2.Canvas.pixels[x,y]:=rgb(moyenne,moyenne,moyenne); //ecriture du pixel en N&B a la même place sur l'autre Timage
end;
end;
6 juil. 2002 à 19:13
si t'a besoin dinstpirations ou d'algorytmes, http://www.vbfrance.com/article.aspx?Val=4800