Как отобразить красный канал изображения в Matlab? - PullRequest
16 голосов
/ 23 августа 2010

У меня есть 3D-матрица im, которая представляет изображение RGB.Я могу сделать

imshow(im)

для отображения изображения.

Я хочу отображать только один из каналов RGB одновременно: я хочу отображать красный канал и хочу, чтобы он отображался красным.

Я пробовал

imshow(im(:,:,1))

но он отображает изображение в градациях серого (а это не то, что мне нужно).

Как отобразить красный канал и сделать его красным?

Ответы [ 5 ]

19 голосов
/ 23 августа 2010

У меня есть три предложения для вас.

1. Используйте функцию imagesc и выберите красную цветовую палитру.

2. Очистите другие цветовые каналы: im(:,:,2:3) = 0; imshow(im);

3. Используйте функцию ind2rgb для соответствующей цветовой карты.

4 голосов
/ 05 ноября 2011

Попробуйте это:

% display one channel only
clear all;

im=imread('images/DSC1228L_512.jpg');
im_red = im;
im_green = im;
im_blue = im;

% Red channel only
im_red(:,:,2) = 0; 
im_red(:,:,3) = 0; 
figure, imshow(im_red);

% Green channel only
im_green(:,:,1) = 0; 
im_green(:,:,3) = 0; 
figure, imshow(im_green);

% Blue channel only
im_blue(:,:,1) = 0; 
im_blue(:,:,2) = 0; 
figure, imshow(im_blue);
3 голосов
/ 29 ноября 2011

Попробуйте это

I = imread('exemple.jpg');

%Red component
R = I(:,:,1);
image(R), colormap([[0:1/255:1]', zeros(256,1), zeros(256,1)]), colorbar;

%Green Component
G = I(:,:,2);
figure;
image(G), colormap([zeros(256,1),[0:1/255:1]', zeros(256,1)]), colorbar;

%Blue component
B = I(:,:,3);
figure;
image(B), colormap([zeros(256,1), zeros(256,1), [0:1/255:1]']), colorbar;
2 голосов
/ 20 марта 2011

Вы имеете в виду, что хотите извлечь только красный цвет? используя im (:,:, 1) только отделить красный канал от 3D-изображения и преобразовать его в 2D-изображение Попробуйте этот простой код:

im=imread('example.jpg');
im_red=im(:,:,1);
im_gray=rgb2gray(im);
im_diff=imsubtract(im_red,im_gray);
imshow(im_diff);
0 голосов
/ 17 октября 2013

Для лучшего обзора вы можете рассчитать и отобразить чистый цвет . Формула R p = R c / (R c + G c + B c ). И пример кода для красного цвета:

imagesc(im(:,:,1) ./ (im(:,:,1) + im(:,:,2) + im(:,:,3)))

Это сделает отображение цветов более четким, так как другие цвета были отфильтрованы.

Я попытаюсь проиллюстрировать это на примере:

Исходное изображение:

enter image description here

Красный канал изображения (im(:,:,1)):

enter image description here

Чисто красный:

enter image description here

...