Come posso convertire un'immagine a colori in scala di grigi in MATLAB?
-
21-09-2019 - |
Domanda
Sto cercando di implementare un algoritmo in computer vision e voglio provarlo su una serie di immagini. Le immagini sono tutte a colori, ma io non voglio fare con questo. Io voglio convertirli in scala di grigi che è sufficiente per testare l'algoritmo.
Come posso convertire un'immagine a colori in scala di grigi?
lo sto leggendo con:
x = imread('bla.jpg');
C'è un argomento che posso aggiungere a imread
di leggerlo come scala di grigi? C'è un modo posso cambiare x
in scala di grigi dopo leggerlo?
Soluzione
Usa rgb2gray
spogliare tonalità e saturazione (cioè, convertire in scala di grigi). Documentation
Altri suggerimenti
x = imread('bla.jpg');
k = rgb2gray(x);
figure(1),imshow(k);
Ho trovato questo link: http://blogs.mathworks.com/steve/2007/ 20/07 / imoverlay-e-imagesc / funziona.
che dice:
im=imread('your image');
m=mat2gray(im);
in=gray2ind(m,256);
rgb=ind2rgb(in,hot(256));
imshow(rgb);
è possibile utilizzando questo codice:
im=imread('your image');
k=rgb2gray(im);
imshow(k);
utilizzando a MATLAB
I=imread('yourimage.jpg');
p=rgb2gray(I)
Utilizzare le funzioni imread()
e rgb2gray()
per ottenere un'immagine in scala di grigi.
Esempio:
I = imread('input.jpg');
J = rgb2gray(I);
figure, imshow(I), figure, imshow(J);
Se si dispone di un'immagine a colori-mappa, è necessario fare come di seguito:
[X,map] = imread('input.tif');
gm = rgb2gray(map);
imshow(X,gm);
L'algoritmo rgb2gray
per la propria implementazione è:
f(R,G,B) = (0.2989 * R) + (0.5870 * G) + (0.1140 * B)