📄 imshow.m
字号:
else
% IMSHOW(I)
imtype = 'intensity';
cdata = varargin{1};
cdatamapping = 'scaled';
switch class(cdata)
case 'uint8'
if (islogical(cdata))
clim = [0 1];
else
clim = [0 255];
end
case 'double'
clim = [0 1];
otherwise
error('Unsupported image class');
end
map = gray(defGrayMapLength);
xdata = [1 size(cdata,2)];
ydata = [1 size(cdata,1)];
end
case 2
% IMSHOW(X,map)
% IMSHOW(I,N)
% IMSHOW(I,[a b])
% IMSHOW(I,[])
if (prod(size(varargin{2})) == 1)
% IMSHOW(I,N)
imtype = 'intensity';
cdata = varargin{1};
cdatamapping = 'scaled';
switch class(cdata)
case 'uint8'
if (islogical(cdata))
clim = [0 1];
else
clim = [0 255];
end
case 'double'
clim = [0 1];
otherwise
error('Unsupported image class');
end
map = gray(varargin{2});
xdata = [1 size(cdata,2)];
ydata = [1 size(cdata,1)];
elseif (isequal(size(varargin{2}), [1 2]))
% IMSHOW(I,[a b])
imtype = 'intensity';
cdata = varargin{1};
cdatamapping = 'scaled';
clim = varargin{2};
map = gray(defGrayMapLength);
xdata = [1 size(cdata,2)];
ydata = [1 size(cdata,1)];
elseif (size(varargin{2},2) == 3)
% IMSHOW(X,map)
imtype = 'indexed';
cdata = varargin{1};
cdatamapping = 'direct';
clim = []; % irrelevant
map = varargin{2};
xdata = [1 size(cdata,2)];
ydata = [1 size(cdata,1)];
elseif (isempty(varargin{2}))
% IMSHOW(I,[])
imtype = 'intensity';
cdata = varargin{1};
cdatamapping = 'scaled';
clim = [min(cdata(:)) max(cdata(:))];
map = gray(defGrayMapLength);
xdata = [1 size(cdata,2)];
ydata = [1 size(cdata,1)];
else
error('Invalid input arguments; see HELP IMSHOW');
end
case 3
% IMSHOW(R,G,B)
% IMSHOW(x,y,I)
% IMSHOW(x,y,RGB)
if (ndims(varargin{3}) == 3)
% IMSHOW(x,y,RGB)
imtype = 'rgb';
cdata = varargin{3};
cdatamapping = 'direct'; % irrelevant
clim = []; % irrelevant
map = []; % irrelevant
xdata = varargin{1};
ydata = varargin{2};
elseif (IsVector(varargin{1}) & IsVector(varargin{2}))
% IMSHOW(x,y,I)
imtype = 'intensity';
cdata = varargin{3};
cdatamapping = 'scaled';
switch class(cdata)
case 'uint8'
if (islogical(cdata))
clim = [0 1];
else
clim = [0 255];
end
case 'double'
clim = [0 1];
otherwise
error('Unsupported image class');
end
map = gray(defGrayMapLength);
xdata = varargin{1};
ydata = varargin{2};
elseif (isequal(size(varargin{1}), size(varargin{2})) & ...
isequal(size(varargin{1}), size(varargin{3})))
% IMSHOW(R,G,B)
imtype = 'rgb';
cdata = cat(3,varargin{:});
cdatamapping = 'direct'; % irrelevant
clim = []; % irrelevant
map = []; % irrelevant
xdata = [1 size(cdata,2)];
ydata = [1 size(cdata,1)];
else
error('Invalid input arguments; see HELP IMSHOW');
end
case 4
% IMSHOW(x,y,X,MAP)
% IMSHOW(x,y,I,N)
% IMSHOW(x,y,I,[a b])
% IMSHOW(x,y,I,[])
if (prod(size(varargin{4})) == 1)
% IMSHOW(x,y,I,N)
imtype = 'intensity';
cdata = varargin{3};
cdatamapping = 'scaled';
switch class(cdata)
case 'uint8'
if (islogical(cdata))
clim = [0 1];
else
clim = [0 255];
end
case 'double'
clim = [0 1];
otherwise
error('Unsupported image class');
end
map = gray(varargin{4});
xdata = varargin{1};
ydata = varargin{2};
elseif (isequal(size(varargin{4}), [1 2]))
% IMSHOW(x,y,I,[a b])
imtype = 'intensity';
cdata = varargin{3};
cdatamapping = 'scaled';
clim = varargin{4};
map = gray(defGrayMapLength);
xdata = varargin{1};
ydata = varargin{2};
elseif (size(varargin{4},2) == 3)
% IMSHOW(x,y,X,map)
imtype = 'indexed';
cdata = varargin{3};
cdatamapping = 'direct';
clim = []; % irrelevant
map = varargin{4};
xdata = varargin{1};
ydata = varargin{2};
elseif (isempty(varargin{4}))
% IMSHOW(x,y,I,[])
imtype = 'intensity';
cdata = varargin{3};
cdatamapping = 'scaled';
clim = [min(cdata(:)) max(cdata(:))];
map = gray(defGrayMapLength);
xdata = varargin{1};
ydata = varargin{2};
else
error('Invalid input arguments. See HELP IMSHOW');
end
case 5
% IMSHOW(x,y,R,G,B)
imtype = 'rgb';
cdata = cat(3,varargin{3:5});
cdatamapping = 'direct'; % irrelevant
clim = []; % irrelevant
map = []; % irrelevant
xdata = varargin{1};
ydata = varargin{2};
otherwise
error('Too many input arguments. See HELP IMSHOW');
end
% Catch complex CData case
if (~isreal(cdata))
warning('Displaying real part of complex input');
cdata = real(cdata);
end
%%%
%%% Subfunction IsVector
%%%
function tf = IsVector(x)
%ISVECTOR True if x has only one non-singleton dimension.
tf = (sum(size(x)~=1) <= 1);
%%%
%%% Subfunction SingleImageDefaultPos
%%%
function tf = SingleImageDefaultPos(figHandle, axHandle)
if (length(findobj(axHandle, 'Type', 'image')) > 1)
% More than one image in axes
tf = 0;
else
figKids = allchild(figHandle);
kids = [findobj(figKids, 'Type', 'axes') ;
findobj(figKids, 'Type', 'uicontrol', 'Visible', 'on')];
if (length(kids) > 1)
% The axes isn't the only thing around, so don't truesize
tf = 0;
else
% Is axHandle in the default position?
if (isequal(get(axHandle, 'Position'), ...
get(get(axHandle,'Parent'), 'DefaultAxesPosition')))
% Yes, call truesize
tf = 1;
else
% No, don't call truesize
tf = 0;
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -