24小时热门版块排行榜    

查看: 500  |  回复: 0

sacredli

新虫 (初入文坛)

[求助] 在线求助 大神帮我看一下 这段程序有什么问题 紧急!!!!!!

function idisp(z, clip, ncmap)

if nargin < 3,
    %         ncmap = 64;
    ncmap = 256;
end

if (nargin > 0) & ~isstr(z),
  
   
    clf
    colormap(gray(ncmap))
    n = ncmap;
    if nargin == 2,
        if length(clip) == 2,
            z(find(z<clip(1))) = clip(1);
            z(find(z>clip(2))) = clip(2);
        elseif length(clip) == 1,
            z(find(z>clip)) = clip;
        end
    end
    hi = image(z);
    hh = max(max(z));
    mm = min(min(z));
    [r1 c1] = find(z == hh);
    [r2 c2] = find(z == mm);
    set(hi, 'CDataMapping', 'scaled');
    htf = uicontrol(gcf, ...
        'style', 'text', ...
        'units',  'norm', ...
        'pos', [.8 .93 .2 .07], ...
        'string', '' ...
        );
    htf1= uicontrol(gcf, ...
        'style', 'text', ...
        'units',  'norm', ...
        'pos', [0 0 0.2 .06], ...
        'string', '' ...
        );
    htf2= uicontrol(gcf, ...
        'style', 'text', ...
        'units',  'norm', ...
        'pos', [0.7 0 0.3 .06], ...
        'string', '' ...
        );
    ud = [gca htf hi axis htf2 r2(1) c2(1) mm htf1 r1(1) c1(1) hh];
    set(gca, 'UserData', ud);
    set(hi, 'UserData', ud);
   
    hpb=uicontrol(gcf,'style','push','string','line', ...
        'units','norm','pos',[0 .93 .1 .07], ...
        'userdata', ud, ...
        'callback', 'idisp(''line'')');
    hzm=uicontrol(gcf,'style','push','string','zoom', ...
        'units','norm','pos',[.1 .93 .1 .07], ...
        'userdata', ud, ...
        'callback', 'idisp(''zoom'')');
    huz=uicontrol(gcf,'style','push','string','unzoom', ...
        'units','norm','pos',[.2 .93 .15 .07], ...
        'userdata', ud, ...
        'callback', 'idisp(''unzoom'')');
   
    set(hi, 'UserData', ud);
    set(gcf, 'WindowButtonDownFcn', 'idisp(''down'')');
    set(gcf, 'WindowButtonUpFcn', 'idisp(''up'')');
    return;
end


if nargin == 0,
    h = get(gcf, 'CurrentObject'); % image
    ud = get(h, 'UserData');                % axis
    h_ax = ud(1);        % axes
    tf = ud(2);        % string field
    hi = ud(3);        % the image
    cp = get(h_ax, 'CurrentPoint');
    x = round(cp(1,1));
    y = round(cp(1,2));
    imdata = get(hi, 'CData');
    set(tf, 'String', ['(' num2str(y) ', ' num2str(x) ') = ' num2str(imdata(y,x))]);
   
    htf1 = ud(end-3);       
    r1 = ud(end-2);       
    c1 = ud(end-1);       
    hh = ud(end);
    htf2 = ud(end-7);       
    r2 = ud(end-6);       
    c2 = ud(end-5);       
    mm = ud(end-4);
    set(htf1, 'String', ['(' num2str(r1) ', ' num2str(c1) ') = ' num2str(hh)]);
    set(htf2, 'String', ['(' num2str(r2) ', ' num2str(c2) ') = ' num2str(mm)]);
    drawnow
elseif nargin == 1,
    switch z,
        case 'down',
            % install pixel value inspector
            set(gcf, 'WindowButtonMotionFcn', 'idisp');
            idisp
            
        case 'up',
            set(gcf, 'WindowButtonMotionFcn', '');
            
        case 'line',
            h = get(gcf, 'CurrentObject'); % push button
            ud = get(h, 'UserData');
            ax = ud(1);        % axes
            tf = ud(2);        % string field
            hi = ud(3);        % the image
            set(tf, 'String', 'First point');
            [x1,y1] = ginput(1);
            x1 = round(x1); y1 = round(y1);
            set(tf, 'String', 'Last point');
            [x2,y2] = ginput(1);
            x2 = round(x2); y2 = round(y2);
            set(tf, 'String', '');
            imdata = get(hi, 'CData');
            dx = x2-x1; dy = y2-y1;
            if abs(dx) > abs(dy),
                x = min(x1,x2):max(x1,x2);
                y = round(dy/dx * (x-x1) + y1);
                nim = size(x,2);
                for kn = 1:nim
                    imgout(kn) = imdata(y(kn),x(kn));
                end
                figure;plot(x,imgout); xlabel('Coordinate (X)')
            else
                y = min(y1,y2):max(y1,y2);
                x = round(dx/dy * (y-y1) + x1);
                nim = size(y,2);
                for kn = 1:nim
                    imgout(kn) = imdata(y(kn),x(kn));
                end
                figure;plot(y,imgout); xlabel('Coordinate (Y)')
            end
                 
        case 'zoom',
            h = get(gcf, 'CurrentObject'); % push button
            ud = get(h, 'UserData');
            ax = ud(1);        % axes
            tf = ud(2);        % string field
            hi = ud(3);        % the image
            set(tf, 'String', 'First point');
            [x1,y1] = ginput(1);
            x1 = round(x1); y1 = round(y1);
            set(tf, 'String', 'Last point');
            [x2,y2] = ginput(1);
            x2 = round(x2); y2 = round(y2);
            set(tf, 'String', '');
            axes(ax);
            axis([x1 x2 y1 y2]);
        case 'unzoom',
            h = get(gcf, 'CurrentObject'); % push button
            ud = get(h, 'UserData');
            h_ax = ud(1);        % axes
            axes(h_ax);
            axis(ud(4:7));
    end
end
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

找到一些相关的精华帖子,希望有用哦~

科研从小木虫开始,人人为我,我为人人
相关版块跳转 我要订阅楼主 sacredli 的主题更新
信息提示
请填处理意见