Comment puis-je convertir une image couleur en niveaux de gris dans MATLAB?
j'essaie d'implémenter un algorithme dans la vision informatique et je veux l'essayer sur un ensemble d'images. Les photos sont toutes en couleur, mais je ne veux pas pour ça. Je veux les convertir en niveaux de gris, ce qui est suffisant pour tester l'algorithme.
comment convertir une image couleur en échelle de gris?
je suis en train de lire ceci:
x = imread('bla.jpg');
y a-t-il un argument que je puisse ajouter à imread
de le lire comme une échelle de gris? Est-il possible que je change d' x
pour niveaux de gris après lecture?
6 réponses
Utiliser rgb2gray
pour la teinte et la saturation (c'est-à-dire la conversion en échelle de gris). Documentation
x = imread('bla.jpg');
k = rgb2gray(x);
figure(1),imshow(k);
j'ai trouvé ce lien: http://blogs.mathworks.com/steve/2007/07/20/imoverlay-and-imagesc/ elle fonctionne.
il dit:
im=imread('your image');
m=mat2gray(im);
in=gray2ind(m,256);
rgb=ind2rgb(in,hot(256));
imshow(rgb);
vous pouvez utiliser ce code:
im=imread('your image');
k=rgb2gray(im);
imshow(k);
à l'aide de matlab
imread()
et rgb2gray()
fonctions pour obtenir une image à échelle de gris.
Exemple:
I = imread('input.jpg');
J = rgb2gray(I);
figure, imshow(I), figure, imshow(J);
Si vous avez une couleur-l'image de la carte, vous devez faire comme ci-dessous:
[X,map] = imread('input.tif');
gm = rgb2gray(map);
imshow(X,gm);
rgb2gray
algorithme pour votre propre implémentation est :
f(R,G,B) = (0.2989 * R) + (0.5870 * G) + (0.1140 * B)