Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB编程实现图像滤波功能_Matlab - Fatal编程技术网

MATLAB编程实现图像滤波功能

MATLAB编程实现图像滤波功能,matlab,Matlab,我希望实现我自己的matlab函数,它可以用来计算带有3x3内核的图像滤波 大概是这样的: out=myfilter(输入\u图像,我的\u 3x3\u内核) 其中输出大小与输入图像大小相同 但是,我不应该使用任何内置的图像过滤函数,如imfilter()、filter2()。conv2()等 我对MATLAB真的很陌生,非常迷茫 我还被告知,输入过滤器内核的大小固定为5x5,但我可以对图像使用零填充?我也不知道这意味着什么,所以一点帮助可以帮助我更好地理解这一点 谢谢 简单的方法 生成“图像”

我希望实现我自己的matlab函数,它可以用来计算带有3x3内核的图像滤波

大概是这样的: out=myfilter(输入\u图像,我的\u 3x3\u内核) 其中输出大小与输入图像大小相同

但是,我不应该使用任何内置的图像过滤函数,如imfilter()、filter2()。conv2()等

我对MATLAB真的很陌生,非常迷茫

我还被告知,输入过滤器内核的大小固定为5x5,但我可以对图像使用零填充?我也不知道这意味着什么,所以一点帮助可以帮助我更好地理解这一点

谢谢

简单的方法

生成“图像”:

现在我们需要以某种方式乘以“正确”的元素。无聊的方式是:

for ii = 1 to n
  for jj = 1 to n
    s = 0;
    for kk = 1 to 3
      for ll = 1 to 3
        s = s + myBiggerImage(ii+kk, jj+ll) * myKernel(kk,ll);
      end
    end
    myFilteredImage(ii,jj) = s;
  end
end    
现在你可以做一些事情来“矢量化”这个。但你觉得你能猜出那部分吗

for ii = 1 to n
  for jj = 1 to n
    s = 0;
    for kk = 1 to 3
      for ll = 1 to 3
        s = s + myBiggerImage(ii+kk, jj+ll) * myKernel(kk,ll);
      end
    end
    myFilteredImage(ii,jj) = s;
  end
end