Matlab 偽彩色 grayscale to rgb


目標是偽彩色顯示病灶區域。。

希望效果是這樣的。。看起來很特別。。吧。。

Matlab shows both grayscale and RGB

image overlay

 

參考link:

(1)matlab-show-colorbar-of-a-grayscale-image-in-a-figure-containing-a-rgb-image

http://stackoverflow.com/questions/16403014/matlab-show-colorbar-of-a-grayscale-image-in-a-figure-containing-a-rgb-image

(2)image-overlay-using-transparency

http://blogs.mathworks.com/steve/2009/02/18/image-overlay-using-transparency/

在這里存檔一下grayscale to rgb部分的代碼。。

 

function res = grs2rgb(img, map)

%%Convert grayscale images to RGB using specified colormap.
%    IMG is the grayscale image. Must be specified as a name of the image 
%    including the directory, or the matrix.
%    MAP is the M-by-3 matrix of colors.
%
%    RES = GRS2RGB(IMG) produces the RGB image RES from the grayscale image IMG 
%    using the colormap HOT with 64 colors.
%
%    RES = GRS2RGB(IMG,MAP) produces the RGB image RES from the grayscale image 
%    IMG using the colormap matrix MAP. MAP must contain 3 columns for Red, 
%    Green, and Blue components.  
%
%    Example 1:
%    open 'image.tif';    
%    res = grs2rgb(image);
%
%    Example 2:
%    cmap = colormap(summer);
%     res = grs2rgb('image.tif',cmap);
%
%     See also COLORMAP, HOT
%
%    Written by 
%    Valeriy R. Korostyshevskiy, PhD
%    Georgetown University Medical Center
%    Washington, D.C.
%    December 2006
%
%     vrk@georgetown.edu

% Check the arguments
if nargin<1
    error('grs2rgb:missingImage','Specify the name or the matrix of the image');
end;

if ~exist('map','var') || isempty(map)
    map = hot(64);
end;

[l,w] = size(map);

if w~=3
    error('grs2rgb:wrongColormap','Colormap matrix must contain 3 columns');
end;

if ischar(img)
    a = imread(img);
elseif isnumeric(img)
    a = img;
else
    error('grs2rgb:wrongImageFormat','Image format: must be name or matrix');
end;

% Calculate the indices of the colormap matrix
a = double(a);
a(a==0) = 1; % Needed to produce nonzero index of the colormap matrix
ci = ceil(l*a/max(a(:))); 

% Colors in the new image
[il,iw] = size(a);
r = zeros(il,iw); 
g = zeros(il,iw);
b = zeros(il,iw);
r(:) = map(ci,1);
g(:) = map(ci,2);
b(:) = map(ci,3);

% New image
res = zeros(il,iw,3);
res(:,:,1) = r; 
res(:,:,2) = g; 
res(:,:,3) = b;

 

版本1結果圖。。。被嫌棄說。。顏色很奇怪。。於是調整了。。結果如圖二。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM