| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | function [ cdata ] = imagescX ( img, cmap, clim )% imagesc_fixed Plot image independent of colormap used in figure% Usage:%     imagesc_fixed ( img, cmap, clim )% INPUT:%     img = 2D matrix of image%     cmap = colormap, defaults to 'jet'% OUTPUT:%     [] = plot the image to current axes%     cdata = RGB matrix%% Development status: Partially functional% Copyleft (c) Xiaohu Mo% Version: 0.7if nargin < 2    cmap = jet(256);endimg = squeeze(img);if ndims(img) > 2    cdata = [];    return;endif isinteger(img)    img = single(img);endcmap_len = size(cmap, 1);if nargin < 3    cmin = min(img(:));    cmax = max(img(:));else    cmin = clim(1);    cmax = clim(2);end% calculate color% TODO cmap_len - 1 or not? See doc caxisimg_indexed = fix((img-cmin)/(cmax-cmin)*(cmap_len-1)) + 1;img_indexed(img_indexed < 1) = 1;img_indexed(img_indexed > cmap_len) = cmap_len;img_indexed(isnan(img_indexed)) = 1; % TODO when cmax == cmincdata = zeros(size(img,1), size(img,2), 3);cdata(:,:,1) = reshape(cmap(img_indexed, 1), size(img));cdata(:,:,2) = reshape(cmap(img_indexed, 2), size(img));cdata(:,:,3) = reshape(cmap(img_indexed, 3), size(img));if nargout == 0    image('CData', cdata);end
 |