zoukankan      html  css  js  c++  java
  • 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结果图。。。被嫌弃说。。颜色很奇怪。。于是调整了。。结果如图二。。。

  • 相关阅读:
    2017-5-16
    2017-3-6 Develop Engineer 面试
    2017 3-4/5 两天的学习的REVIEW
    2017-3-2 C# WindowsForm 中label标签居中显示
    css图片响应式+垂直水平居中2
    flash上传在spring mvc中出现的问题2
    avalon js实现拖动图片排序
    css图片响应式+垂直水平居中1
    flash上传在spring mvc中出现的问题1
    mybatis Result Maps对结果分组3--一对多使用limit
  • 原文地址:https://www.cnblogs.com/luckystar-67/p/3722281.html
Copyright © 2011-2022 走看看