Matlab:transformation image r aster

Fermé
mrsax - 7 mai 2009 à 10:16
 benkouider - 25 avril 2010 à 12:22
Bonjour,
je cherche a comparer deux formes présentent sur des images au format bmp.
le fond de l'image est blanc et le corps de la forme est noir.
Pour ce faire j'aimerai rasteriser ces images pour pouvoir faire l'addition des2 matrices.
Ainsi je pourrai récupérer uniquement les pixels ayant la valeur 1 ( élimination de ceux qui valent 0 ou 2).

je n'est pas besoin de l'image finale, juste de ce nombre en sortie.
si vous pouviez me fournir une méthode pour faire ceci.

par avance je vous en remercie.
mr sax

4 réponses

squall289 Messages postés 98 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 29 mai 2009 13
7 mai 2009 à 10:23
Bonjour,
Je ne vois pas ce que tu veux dire par rasteriser...
Personnellement je binariserai les images, et je ferai ensuite une simple addition matricielle.
Ensuite avec une LUT parcourir l'image et ne conserver que les pixels à 1.
La fonction pour binariser est im2bw il me semble. Il y a aussi une fonction pour inverser les niveau de gris, je pense que c'est inv(I) mais je ne suis vraiment pas sur.
Cordialement,
0
en fait je veux que chaque pixel reçoive soit la valeur 1, soit 0, en fonction
de leur couleur et que tout ceci se retrouve dans une matrice.
0
squall289 Messages postés 98 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 29 mai 2009 13
7 mai 2009 à 11:08
Je pense que je vois ce que tu veux dire !
En fait Matlab prend directement les images sous forme de matrice à la lecture, il n'y a pas besoin de faire grand chose...
Donc :
I1=imread("chemin_vers_l'image_1".bmp);
I1bw=im2bw(I1);

I2=imread("chemin_vers_l'image_2".bmp);
I2bw=im2bw(I2);

Ires=I1+I2;

[M,N]=size(Ires);
for i:M
for j:N
if (Ires(i,j)~=1)
Ires=0;
end
end
end
imshow(Ires);

Cordialement,
0
bonjour
tu peux utiliser la commande matlab: double pour pouvoir faire une addition entre matrices.
pour récupérer les pixels de valeurs égales à1; utiliser la commande [i,j]=find(a==1),
i,j les coordonnées de la matrice a ayant une valeur =1
0