Присвояване на цветове на региони от изображение

За изображение, което имам, как мога да направя следното в 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
@Simplicity прав си. 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
@Simplicity 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
@Шай. Само малка правописна грешка в последния ти коментар. _12_ - 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