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?

10
demandé sur gnovice 2009-11-22 22:12:04

6 réponses

Utiliser rgb2gray pour la teinte et la saturation (c'est-à-dire la conversion en échelle de gris). Documentation

25
répondu Donnie 2016-11-28 10:00:07
x = imread('bla.jpg');
k = rgb2gray(x);
figure(1),imshow(k);
8
répondu s.lakshmi 2009-12-27 13:03:25

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);
2
répondu Ema 2011-06-29 08:41:01

vous pouvez utiliser ce code:

im=imread('your image');
k=rgb2gray(im);
imshow(k);

à l'aide de matlab

1
répondu Dian Permata 2012-11-11 19:54:33

I=imread('yourimage.jpg');
p=rgb2gray(I)
0
répondu SPIRO TECH GURU 2015-10-14 12:58:16

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)
0
répondu Ali 2017-06-14 21:41:22