小编Tet*_*wex的帖子

不使用conv2的Matlab图像过滤

我被赋予了为3x3矩阵创建图像过滤功能的任务,其结果必须等于conv2.我写过这个函数,但是它错误地过滤了图像:

function [ image ] = Func134( img,matrix )
  image=img;
  len=length(img)
  for i=2:1:len-1
    for j=2:1:len-1
      value=0;
      for g=-1:1:1
        for l=-1:1:1
          value=value+img(i+g,j+l)*matrix(g+2,l+2);
        end
      end
     image(i,j)=value;
    end
  end
i=1:1:length
image(i,1)=image(i,2)
image(i,len)=image(i,len-1)
image(1,i)=image(2,i)
image(len,i)=image(len-1,i)
end
Run Code Online (Sandbox Code Playgroud)

过滤矩阵为[3,10,3; 0,0,0; ​​-3,-10,-3]

请帮助弄清楚我的代码有什么问题.

我得到的一些示例结果conv2和我的代码如下所示.

图像处理结果

matlab filtering image image-processing convolution

3
推荐指数
1
解决办法
3270
查看次数

标签 统计

convolution ×1

filtering ×1

image ×1

image-processing ×1

matlab ×1