Pergunta

Estou tentando implementar um algoritmo na visão computacional e quero experimentá -lo em um conjunto de imagens. As fotos estão todas em cores, mas não quero lidar com isso. Quero convertê -los em escala de cinza, o que é suficiente para testar o algoritmo.

Como posso converter uma imagem colorida em escala de cinza?

Estou lendo com:

x = imread('bla.jpg');

Existe algum argumento que eu possa adicionar imread para lê -lo como escala de cinza? Existe alguma maneira de mudar x à escala de cinza depois lendo isso?

Foi útil?

Solução

Usar rgb2gray Para retirar a tonalidade e a saturação (ou seja, converter em escala de cinza). Documentação

Outras dicas

x = imread('bla.jpg');
k = rgb2gray(x);
figure(1),imshow(k);

Eu encontrei este link:http://blogs.mathworks.com/steve/2007/07/20/imoverlay-and-imagesc/funciona.

diz:

im=imread('your image');
m=mat2gray(im);
in=gray2ind(m,256);
rgb=ind2rgb(in,hot(256));
imshow(rgb);

Você pode usar este código:

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

Usando para Matlab

I=imread('yourimage.jpg');
p=rgb2gray(I)

Use o imread() e rgb2gray() Funções para obter uma imagem de escala de cinza.

Exemplo:

I = imread('input.jpg');
J = rgb2gray(I);
figure, imshow(I), figure, imshow(J); 

Se você tem uma imagem de mapa de cores, deve fazer abaixo:

[X,map] = imread('input.tif');
gm = rgb2gray(map);
imshow(X,gm);

o rgb2gray O algoritmo para sua própria implementação é:

f(R,G,B) = (0.2989 * R) + (0.5870 * G) + (0.1140 * B)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top