2013-09-27 113 views
0

EDIT給予特定像素的特定顏色

我有一個grayscale圖像含有的300像素值,這是我手動分配給該保持特定準則的像素。

這種情況是,圖像中的其他值是12。所以,我現在有三個值:1,2300

爲了以有意義的方式顯示圖像,我們可以使用thresholding。所以,這與具有值12的像素一樣。對於值爲300的像素,如何將其分配給某種顏色以便能夠將其與圖像的其他部分區分開來。

謝謝。

+0

如RGB紅色(即您的圖像是MxNx3矩陣)或只是在圖中將它們標記爲紅色?如果您的圖像只是一個2-D矩陣,那麼需要編輯顏色表以便像素值300變爲紅色。如果你的圖像是RGB,那麼它是不同的。 – bla

+0

@natan。謝謝你的評論。我使用的圖像是「灰度」。目標實際上不是分配「紅」色。但是,我可以將這些像素與圖像的其他部分區分開來。我對我的問題進行了**編輯**以澄清此問題 – Simplicity

+0

用我的答案,您可以在'[0,1]'上設置不透明度,並且像素將以該不透明度爲紅色。另外,使用帶範圍的'imshow'('[0 2]')可以以您想要的方式實現閾值強度。 – chappjc

回答

1

如果您擁有的所有值都是1,2,300那麼一個簡單的色彩圖將解決該問題。關鍵是要分配的值3代替300所以顏色表的線性映射,可以使用(1,2,3),例如,如果您於imagesc稱爲im

im(im==300)=3; 

cmap=[0.2 0.2 0.2; ... 
     0.4 0.4 0.4; ... 
     1 0 0 ]; 

colormap(cmap); 
imagesc(im); 

在這裏,我創建了一個3帶有3種顏色(1深灰色,2淺灰色,3紅色)的顏色彩色地圖。

0

若要在不修改圖像數據的情況下執行此操作,可以使用AlphaData屬性在選定位置製作顏色疊加。給定一個灰度圖像img

imshow(img, [0 2], 'InitialMag', 'fit'); hold on 
red = cat(3, ones(size(img)), zeros(size(img)), zeros(size(img))); 
h = imshow(red); hold off 
opacity = 1.0; 
set(h, 'AlphaData', opacity*double(img==300)) 

編輯:如果你的其他值都只是1和2,他們會很暗比300,所以在imshow[0 2]將與幫助。