Matlab图像显示

时间:2013-12-28 19:49:05

标签: matlab

下面是我在Matlab中编写的一个函数。该功能正常工作但输出显示三个不同输出的不同图像。

function Img = power_Law(Img)
temp = Img;
[a,b]=size(Img);
C=0.2;
omega=0.2;
for i=1:a
    for j=1:b
        img(i,j)=C*power(temp(i,j),omega);
    end
end
imshow(img);
end 

我的问题是我错过了任何转换吗?为什么输出不是单个图像。 这是输出的链接。 https://www.dropbox.com/s/p6vuhzodk29qaul/image.png

1 个答案:

答案 0 :(得分:0)

您会注意到,在Matlab和Octave中,对矩阵执行的操作与其元素上的循环相比要快得多。循环也会造成犯错的可能性。

假设Img的大小为900x1200x3,则img的大小为900x3600,因为[a,b]=size(img)返回a = 900b = 3600Img是三维数组。 然后正确的代码看起来像这样,注意它不会改变img2

的维度
function img2 = power_law(img, C, omega)
  img2 = C * power(img, omega);
  imshow(img2);
end