it-swarm.com.ru

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

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

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

Я читаю это с:

x = imread('bla.jpg');

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

10
Nathan Fellman

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

25
Donnie
x = imread('bla.jpg');
k = rgb2gray(x);
figure(1),imshow(k);
8
s.lakshmi

Я нашел эту ссылку: 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);
2
Ema

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

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

используя для Matlab

1
Dian Permata
I=imread('yourimage.jpg');
p=rgb2gray(I)
0
SPIRO TECH GURU

Используйте функции 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)
0
Alimpk