Я пытаюсь реализовать алгоритм в компьютерном зрении, и я хочу попробовать его на множестве изображений. Изображения все в цвете, но я не хочу иметь дело с этим. Я хочу преобразовать их в оттенки серого, которых достаточно для тестирования алгоритма.
Как преобразовать цветное изображение в оттенки серого?
Я читаю его с помощью:
x = imread('bla.jpg');
Есть ли какой-либо аргумент, который я могу добавить в imread
, чтобы прочитать его как оттенки серого? Есть ли способ изменить x
на оттенки серого после его прочтения?
Ответ 1
Используйте rgb2gray
для выделения оттенка и насыщенности (т.е. преобразования в оттенки серого). Документация
Ответ 2
x = imread('bla.jpg');
k = rgb2gray(x);
figure(1),imshow(k);
Ответ 3
Я нашел эту ссылку:
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);
Ответ 4
вы можете использовать этот код:
im=imread('your image');
k=rgb2gray(im);
imshow(k);
используя matlab
Ответ 5
I=imread('yourimage.jpg');
p=rgb2gray(I)
Ответ 6
Используйте функции 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)