필터 지우기
필터 지우기

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

조회 수: 2 (최근 30일)
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개)

Geoff Hayes
Geoff Hayes 2016년 1월 29일
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);

카테고리

Help CenterFile Exchange에서 Images에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by