Как преобразовать цветное изображение в оттенки серого в MATLAB?
Я пытаюсь реализовать алгоритм в компьютерном зрении, и я хочу попробовать его на наборе изображений. Фотографии все цветные, но я не хочу иметь с этим дело. Я хочу преобразовать их в оттенки серого, что достаточно для тестирования алгоритма.
как преобразовать цветное изображение в оттенки серого?
Я читаю его с:
x = imread('bla.jpg');
есть ли какой-либо аргумент, я могу добавить к imread
чтобы прочитать его как оттенки серого? Есть ли способ изменить x
в серого после читать это?
6 ответов
использовать rgb2gray
для полосы оттенка и насыщенности (т. е. преобразования в оттенки серого). документация
Я нашел эту ссылку: 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
использовать 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)