EDIT給予特定像素的特定顏色
我有一個grayscale
圖像含有的300
像素值,這是我手動分配給該保持特定準則的像素。
這種情況是,圖像中的其他值是1
和2
。所以,我現在有三個值:1
,2
和300
。
爲了以有意義的方式顯示圖像,我們可以使用thresholding
。所以,這與具有值1
和2
的像素一樣。對於值爲300
的像素,如何將其分配給某種顏色以便能夠將其與圖像的其他部分區分開來。
謝謝。
EDIT給予特定像素的特定顏色
我有一個grayscale
圖像含有的300
像素值,這是我手動分配給該保持特定準則的像素。
這種情況是,圖像中的其他值是1
和2
。所以,我現在有三個值:1
,2
和300
。
爲了以有意義的方式顯示圖像,我們可以使用thresholding
。所以,這與具有值1
和2
的像素一樣。對於值爲300
的像素,如何將其分配給某種顏色以便能夠將其與圖像的其他部分區分開來。
謝謝。
如果您擁有的所有值都是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紅色)的顏色彩色地圖。
若要在不修改圖像數據的情況下執行此操作,可以使用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]
將與幫助。
如RGB紅色(即您的圖像是MxNx3矩陣)或只是在圖中將它們標記爲紅色?如果您的圖像只是一個2-D矩陣,那麼需要編輯顏色表以便像素值300變爲紅色。如果你的圖像是RGB,那麼它是不同的。 – bla
@natan。謝謝你的評論。我使用的圖像是「灰度」。目標實際上不是分配「紅」色。但是,我可以將這些像素與圖像的其他部分區分開來。我對我的問題進行了**編輯**以澄清此問題 – Simplicity
用我的答案,您可以在'[0,1]'上設置不透明度,並且像素將以該不透明度爲紅色。另外,使用帶範圍的'imshow'('[0 2]')可以以您想要的方式實現閾值強度。 – chappjc