梦里花111 发表于 2013-9-25 21:19

版主快来看呀~~matlab定义函数有问题

我按照书上的内容输入下列定义函数内容,为什么执行出来后的输出三张图片,请各位帮忙:handshake
function Z=imadjust_sec(X,a,b,c,d)
=size(X);
X1=im2double(X);
for i=1:Height
    for j=1:Width
        if (X1(i,j)<a)
            Z(i,j)=c/a*X1(i,j);
        end
            if (X1(i,j)>=a&&X1(i,j)<=b)
            Z(i,j)=(d-c)/(b-a)*(X1(i,j)-a)+c;
            end
            if (X1(i,j)>=b)
            Z(i,j)=(1-d)/(1-b)*(X1(i,j)-b)+d;
        end
    end
end

真心没有办法哦

梦里花111 发表于 2013-9-25 21:21

就是定义了一个这样的函数,然后执行下列命令:
X=imread('2.jpg');
Z=imadjust_sec(X,0.4,0.5,0.1,0.6);
imshow(X),figure
imshow(Z)
输出三张图片
不知道这次说清楚了没有

zhengguobin2013 发表于 2013-9-26 14:13

你是想说imshow(z)为什么输出是三张图吗?
其实那三张其实是一张。
因为imread函数的输出是(m,n,3)的数组,你用size函数时输出就是(m,n*3)了
如果我没有说错的话imread函数从每一个点上读出了R,G,B三个数。你所谓的三张图分别就是这三个变量单独构成的
页: [1]
查看完整版本: 版主快来看呀~~matlab定义函数有问题