数字图像处理知识(空间滤波)

1 空间滤波

1.1 线性空间滤波

  • 主要的线性运算就是:掩膜中心置于(x,y)处,将(x,y)邻域内的每个像素与相应的掩膜系数相乘,再累加所有的结果,作为(x,y)的值。在图像上移动掩膜。
  • 卷积和相关的区别就是卷积将掩膜旋转了180°。
  • 代码:g = imfilter(I, w, 'replicate'),replicate表示复制外边界的值,symmetric表示镜面反射边界来扩展,circular表示将图像看成是一个二维周期函数的一个周期来扩展。
  • 示例:平滑滤波
    I = imread('cube.jpg');
    subplot(131), imshow(I), title('原图');
    I = double(rgb2gray(I));
    w = ones(5);
    I1 = imfilter(I, w, 'replicate');
    subplot(132), imshow(I1, []), title('kernel size = 5');
    w1 = ones(15);
    I2 = imfilter(I, w1, 'replicate');
    subplot(133), imshow(I2, []), title('kernel size = 15');
    

  • 掩膜越大,图像边缘就变得越模糊。
  • 其它函数:w = fspecial('type', parameters),用来生成想要的掩膜。
  • 示例:
    I = imread('moon.jpg');
    subplot(131), imshow(I), title('原图');
    w = fspecial('laplacian', 0);
    I1 = imfilter(I, w);
    subplot(132), imshow(I1), title('滤波结果');
    I2 = I - I1;
    subplot(133), imshow(I2), title('增强结果');
    

  • 滤波后图像比原图像清晰了不少。

1.2 非线性空间滤波

  • 中值滤波:它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值,可以较好地处理椒盐噪声。

  • 代码:g = medfilt2(I, [m n], padopt),在m*n的邻域上计算,padopt为边界填充选项。

  • 示例:

    I = imread('lena.jpg');
    I = rgb2gray(I);
    subplot(131), imshow(I), title('原图');
    In = imnoise(I, 'salt & pepper', 0.1);
    subplot(132), imshow(In), title('噪声污染');
    I1 = medfilt2(In);
    subplot(133), imshow(I1), title('中值滤波结果');
    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值