hai,its showing error as specify the error or matrix of the image ? please help me immediately amnot getting the output for this am trying from morning
1 view (last 30 days)
Show older comments
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;
0 Comments
Answers (1)
Geoff Hayes
on 29 Jan 2016
venmal - the error message is being generated from this block of code
if nargin<1
error('grs2rgb:missingImage','Specify the name or the matrix of the image');
end;
The above is checking on the number of arguments, nargin. If less than one, then the message is generated.
You must pass as an image as the first input parameter to this function. For example,
myImg = randi(255,500,500); % a 2D grayscale "image" of random pixels
res = grs2rgb(myImg);
You can provide a map or not (a default one will be created). Or instead of passing in an image, you can pass in a file name (with path) to that image
filename = 'myPath/myImage.gif';
res = grs2rgb(filename);
0 Comments
See Also
Categories
Find more on Blue in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!