⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imshow.m

📁 有关matlab的电子书籍有一定的帮助希望有用
💻 M
📖 第 1 页 / 共 2 页
字号:
        
    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 + -