我是靠谱客的博主 多情小笼包,最近开发中收集的这篇文章主要介绍Matlab之空间域滤波——低通、中值滤波,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

图像滤波器的应用:去除噪声。

均值滤波器的应用:提取感兴趣物体。

低通滤波:图像平滑。

低通滤波器去除了图像的高频部分,即细节信息,留下的低频信息代表了概貌。常用的例子,比如美图秀秀的磨皮,去掉了脸部细节信息(痘坑,痘印,暗斑等)。  中值滤波就是一种低通滤,其是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。所以能够消除图像篡改的噪音。用于数字图像反取证。

高通滤波则相反,所以在图像取证领域,高通滤波能检测噪声的急促变化,证实图像的边缘信息(或者噪声)
原文链接:https://blog.csdn.net/qq_24568487/article/details/85101859

一、低通滤波

    空间域滤波是指在图像空间中借助模板对图像领域进行操作,处理图像每一个像素值。主要分为线性滤波和非线性滤波两类,根据功能可分为平滑滤波器和锐化滤波器。平滑可通过低通来实现,平滑的目的有两类,一是模糊,目的是在提取较大的目标前去除太小的细节或将目标内的小尖端连接起来;二是去噪。锐化则可用高通滤波来实现,锐化的目的是为了增强被模糊的细节。

clear all; close all;
I=imread('ice.bmp');
I=im2gray(I);
I=im2double(I);
h=ones(3,3)/9;
K=conv2(I, h);
figure;
subplot(121);
imshow(I);
subplot(122);
imshow(K);

 在matlab中,也可以通过函数filter2()进行二维线性数字滤波,采用函数fspecial()产生滤波器模板。

具体代码如下:

clear all; close all;
I=imread('ice.bmp');
I_gray=im2gray(I);%转换为灰度图像
I2=im2double(I_gray);%转换精度
%J=imnoise(I, 'salt & pepper', 0.02);
h1=fspecial('average', 3);%创建预定义的二维滤波器,3*3
h2=fspecial('average', 5);%创建预定义的二维滤波器,5*5
K1=filter2(h1, I2);%二维数字滤波器
K2=filter2(h2, I2);
figure;
imshow(I2);
figure;
imshow(K1);
figure;
imshow(K2);

结果:

 二、中值滤波

二位中值滤波用于图像的增强。中值滤波可以去除图像的椒盐噪声,平滑效果由于均值滤波,在抑制噪声的同时还能够保持图像的边缘清晰。在Matlab中,可以采用函数medfilt2()进行图像的二维中值滤波。

具体代码如下:

clear all; close all;
I=imread('ice.bmp');
I_gray=im2gray(I);%转换为灰度图像
I2=im2double(I_gray);%转换精度
K=medfilt2(I2);
figure;
imshow(I2);
title('原图');
figure;
imshow(K);
title('中值滤波后');

最后

以上就是多情小笼包为你收集整理的Matlab之空间域滤波——低通、中值滤波的全部内容,希望文章能够帮你解决Matlab之空间域滤波——低通、中值滤波所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部