Назначение цветов областям изображения

Для изображения, которое у меня есть, как я могу сделать следующее в MATLAB?

  • Присвоение пикселям со значениями 100, например, цвета green?
  • Оставляем пиксели с 0 как есть. То есть сохраняя их black.
  • Придание всем остальным пикселям цвета red.

ИЗМЕНИТЬ

Если я теперь знаю, что пиксели со значением 255 белые, 0 черные. Как я могу назначить цвет red пикселям со значением 255, а всем остальным пикселям цвет green? Спасибо

Спасибо.


person Simplicity    schedule 01.10.2013    source источник
comment
возможный дубликат придания определенным пикселям определенного цвета   -  person nkjt    schedule 02.10.2013


Ответы (1)


Вам нужно создать карту цветов.
Предполагая, что ваше изображение имеет тип uint8, вы можете создать карту из 256 цветов:

myMap = repmat( [1 0 0], [256,1] ); % make it all red
myMap(1,:) = 0; % make first color black
myMap(100,:) = [0 1 0]; % green for 100
cimg = ind2rgb( uint8im, myMap ); % convert to color according to map
person Shai    schedule 01.10.2013
comment
@ Простота, ты прав. ind2rgb предполагает, что входное изображение является сопоставленным изображением. введите doc ind2rgb для получения дополнительной помощи. - person Shai; 01.10.2013
comment
@ Шай. Что мне делать в этом случае, чтобы получить результат? Спасибо - person Simplicity; 01.10.2013
comment
Если вы вводите axbxc, какой размер вывода вы ожидаете? - person Mercury; 01.10.2013
comment
@Simplicity, если ваше изображение имеет 3 цветовых канала, что именно вы подразумеваете под пикселями со значением 100? на каком канале? один из них? все они? - person Shai; 01.10.2013
comment
@Simplicity преобразуйте ваше изображение в серый, используя rgb2gray, вы получите изображение axb, проверьте, каковы значения серого и белого, используя impixelinfo, а затем вы можете использовать мой ответ. Вы можете посмотреть на label2rgb. - person Shai; 01.10.2013
comment
@Шай. Я преобразовал изображение в grayscale. Если я теперь знаю, что пиксели со значением 255 белые, 0 — черные. Как я могу указать, чтобы назначить цвет red пикселям со значением 255, а всем остальным пикселям цвет red? Спасибо - person Simplicity; 01.10.2013
comment
Я хотел сказать, что все остальные пиксели имеют цвет green - person Simplicity; 01.10.2013
comment
@Простота myMap = repmat( [0 1 0], [256 1] );myMap(1,:) = 0;myMap(end,:) = [1 0 0]; cimg = in2rgb( im2uint8(grayImg), myMap ); - person Shai; 01.10.2013
comment
@Шай. Я думаю, что это почти работает, за исключением того, что фон, который должен быть black, на самом деле green! Почему это? - person Simplicity; 01.10.2013
comment
@Шай. Просто небольшая опечатка в вашем последнем комментарии. in2rgb ---› ind2rgb - person Simplicity; 01.10.2013
comment
@Simplicity ваш черный не на 100% черный. используйте impixelinfo для изучения. - person Shai; 02.10.2013
comment
@Шай. This is an edit to the comment before the last comment. Что касается фоновых пикселей, я не получаю их все с цветом black - person Simplicity; 04.10.2013