【问题标题】:Apply and display mean filter in matlab在 matlab 中应用和显示均值滤波器
【发布时间】:2015-11-24 22:09:41
【问题描述】:

我运行了这段代码,但由于某种原因,输出是一个带有黑色右边框的白色屏幕。有谁知道为什么会这样?

image=imread('lena.jpg');
image=rgb2gray(image);
[rows,cols]=size(image);
paddedimage=padarray(image,[1 1]);
newimage=zeros(rows,cols);
tot=0;
for i=2:(rows-1)

   for j=2:(cols-1)
    for i1=i-1:i+1
        for j1=j-1:j+1
            jk=image(i1,j1);
            tot=tot+jk;
        end

    end
    tot=tot/9;
    newimage(i-1,j-1)=tot;
   end
    tot=0;
end

imshow(newimage);

【问题讨论】:

  • 在使用imshow之前检查newimage的数据类型。它必须是uint8,范围为0 - 255(仅限整数)或类型为double,范围为0 - 1。
  • 另外,你有什么理由不只是为此使用conv2?至少用它来检查自己

标签: matlab image-processing


【解决方案1】:

你需要告诉 Matlab 使用哪个显示范围。您可以使用imshow(newimage, []); 让它自动选择。 内置演示图像 office_1.jpg 的输出:

imshow(newimage);

imshow(newimage, []);

【讨论】:

    猜你喜欢
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2014-02-20
    • 2011-10-02
    • 1970-01-01
    相关资源
    最近更新 更多