Как преобразовать цветное изображение в оттенки серого в MATLAB?

Я пытаюсь реализовать алгоритм в компьютерном зрении, и я хочу попробовать его на наборе изображений. Фотографии все цветные, но я не хочу иметь с этим дело. Я хочу преобразовать их в оттенки серого, что достаточно для тестирования алгоритма.

как преобразовать цветное изображение в оттенки серого?

Я читаю его с:

x = imread('bla.jpg');

есть ли какой-либо аргумент, я могу добавить к imread чтобы прочитать его как оттенки серого? Есть ли способ изменить x в серого после читать это?

6 ответов


использовать rgb2gray для полосы оттенка и насыщенности (т. е. преобразования в оттенки серого). документация


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

Я нашел эту ссылку: http://blogs.mathworks.com/steve/2007/07/20/imoverlay-and-imagesc/ это работает.

Он говорит:

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

вы можете использовать этот код:

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

использование в matlab


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

использовать imread() и rgb2gray() функции для получения изображения в оттенках серого.

пример:

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

если у вас есть цветной карты, вы должны сделать, как показано ниже:

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

на rgb2gray алгоритм для вашей собственной реализации:

f(R,G,B) = (0.2989 * R) + (0.5870 * G) + (0.1140 * B)