数字图像处理--平滑滤波
1.相关知识
今天介绍平滑滤波的一些知识!
相关知识:均值模板和中值滤波
例如,3X3均值模板(取图像相邻区域的像素求和取平均代替中心像素,更高次类似)
[ 1 1 1
1 1 1
1 1 1]
然后说说中值滤波,还是以3X3来说,将3X3区域内的像素按大小值进行排列,取中间的值代替模板中心的值。
好了,基础说完了,来实际操作吧!
2.内容代码
2.1 选择一副具有大小尺寸的物体图像,分别选择 3×3,7×7,25×25 等平均模板进行均值滤波模糊处理,并对不同尺寸的滤波器模板操作后的图像进行比较。
参考代码:
】
I=imread(‘fig620.jpg’);
I1=fy_Mean_filter(I,3);
I2=fy_Mean_filter(I,7);
I3=fy_Mean_filter(I,25);
figure;
subplot(1,3,1);
imshow(I1);
title(‘3X3’);
subplot(1,3,2);
imshow(I2);
title(‘7X7’);
subplot(1,3,3);
imshow(I3);
title(‘25X25’);
fy_Mean_filter函数参考代码:
实现均值滤波器
image_in为输入图像,N选择几乘几的算子,image_out为输出图像
by 方阳
function image_out=fy_Mean_filter(image_in,N)
[m,n]=size(image_in);
N=ones(N);
[a,b]=size(N);
n=n/3;%由于我的灰度图像是314x323x3的,所以除了3,你们如果是PxQ的,就不要加了
A=zeros(m+2*(a-1),n+2*(b-1));%构造矩阵(0填充)
B=A;%用来存放均值后A的值
C=zeros(m,n);%存最后的输出结果
for i=a:m+a-1
for j=b:n+b-1
A(i,j)= image_in(i-a+1,j-b+1);%填充图像到A
end
end
[L,T]=size(A);
%以下是实现均值相关运算
for i=1:L-a+1
for j=1:T-b+1
for p=1:a
for q=1:b
B(i+(a-1)/2,j+(b-1)/2)=B(i+(a-1)/2,j+(b-1)/2)+A(p+i-1,q+j-1);
end
end
end
end
B=uint8(B/(a*b));
%对运算完的B进行剪切,恢复出均值后的图像
for x=a:m+a-1
for y=b:n+b-1
C(x-a+1,y-b+1)=B(x,y);
end
end
image_out=uint8©;
运行结果:
可见模板越大,图像越平滑,但也越模糊。
2.2 选择一副图像,对图像加入椒盐噪声,检验两种滤波模板(3×3 平均模板和 3×3 中值滤波器)对噪声的滤波效果。
参考代码:
I4=imread(‘lena.bmp’);
I5=imnoise(I4,‘salt & pepper’,0.02);
I6=fy_Mean_filter(I5,3);
I7=fy_Mid_Filter(I5,3);
figure;
subplot(2,2,1);
imshow(I4);
title(‘原图’);
subplot(2,2,2);
imshow(I5);
title(‘加椒盐噪声后的图像’);
subplot(2,2,3);
imshow(I6);
title(‘均值滤波后的图像’);
subplot(2,2,4);
imshow(I7);
title(‘中值滤波后的图像’);
fy_Mid_Filter函数的参考代码(与fy_Mean_filter类似):
%该函数实现中值滤波
function image_out=fy_Mid_Filter(image_in,N)
[m,n]=size(image_in);
n=n/3;
A=zeros(m+2*(N-1),n+2*(N-1));%构造矩阵
B=A;%用来存放均值后A的值
C=zeros(m,n);%存最后的输出结果
for i=N:m+N-1
for j=N:n+N-1
A(i,j)= image_in(i-N+1,j-N+1);%填充图像到A
end
end
[L,T]=size(A);
for i=1:L-N+1
for j=1:T-N+1
c=A(i:i+(N-1),j:j+(N-1));
e=c(1,:); %是c矩阵的第一行
for u=2:N
e=[e,c(u,:)]; %将c矩阵变为一个行矩阵
end
mm=median(e); %mm是中值
B(i+(N-1)/2,j+(N-1)/2)=mm;
end
end
for x=N:m+N-1
for y=N:n+N-1
C(x-N+1,y-N+1)=B(x,y);
end
end
image_out=uint8©;
实验结果:
由此可见,在滤除椒盐噪声方面,中值滤波要比均值滤波要好!
数字图像处理--平滑滤波相关推荐
- 计算机图像进行滤波的函数,数字图像处理图像滤波.ppt
数字图像处理图像滤波 图像滤波 图像处理中所用到的图像往往含有噪声,需要用图像滤波的方法去除噪声. 内容框架 像素基础知识介绍 算术和逻辑运算 直方图 直方图均衡算法,用于图像锐化. 图像增强基本方法 ...
- matlab图像处理——平滑滤波
平滑滤波--matlab图像处理 平滑滤波的目的是消除或尽量减少噪声,改善图像的质量.假设加性噪声是随机独立分布,这样利用图像像素领域的平均或加权平均即可有效地抑制噪声干扰.从信号分析的观点来看,图像 ...
- 数字图像处理——双边滤波
双边滤波python实现 文章目录 双边滤波python实现 前言 一.去噪算法 二.双边滤波算法背景介绍 三.双边滤波算法原理 四.开发环境 五.实验内容 六.实验代码 七.实验结果 前言 双边滤波 ...
- 数字图像处理---空域滤波增强
空域滤波增强也称为模板操作,主要以像素邻域为基础对图像进行增强,增强函数E()定义在像素点(x,y)的某个邻域上.模板是指滤波器.核.掩模或窗口.邻域可以是任意形状,通常采用正方形或矩形阵列. 按照功 ...
- 数字图像处理——引导滤波
一.概述 引导滤波是由何恺明等人于2010年发表在ECCV的文章<Guided Image Filtering>中提出的,后续于2013年发表.引导过滤器根据局部线性模型原理,通过考虑引导 ...
- 数字图像处理频域滤波实现低通与高通滤波(包含matlab代码)
低通滤波器 理想低通滤波 作用:保留频谱图中圆内低频分量,截断频谱图中圆外高频分量 函数表示: 假设频谱中心在 (M/2,N/2)处,则任意频谱成分(u,v) 到中心(原点)的距离D(u,v) 定义为 ...
- 数字图像处理——频域滤波基础
频域滤波基础 1.频域滤波与空域滤波的关系 傅立叶变换可以将图像从空域变换到频域,而傅立叶反变换则可以将图像的频谱逆变换为空域图像.这样一来,我们可以利用空域图像与频域之间的对应关系,尝试将空域卷积滤 ...
- 数字图像处理——图像滤波概念及方法
1.什么是图像滤波? 图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性. --百度百科 ...
- 数字图像处理-频域滤波-高通/低通滤波
频域滤波 频域滤波是在频率域对图像做处理的一种方法.步骤如下: 滤波器大小和频谱大小相同,相乘即可得到新的频谱. 滤波后结果显示,低通滤波去掉了高频信息,即细节信息,留下的低频信息代表了概貌.常用的例 ...
最新文章
- 记一次金士顿DT100 G3 32G修复
- #Node.js的fs导入遇到的问题和解决方案
- Everyday English: Socialising (formal) 吃formal用语
- python最长回文子串leetcode_Python版LeetCode5. 最长回文子串
- LinkedList 的实现原理浅析
- oracle中 使用不了,Oracle 中不使用NOT IN 和 NOT EXISTS的另一种方法
- 【tool】kali linux关于postgresql的使用
- 爽到爆!阿里腾讯都在用的API管理神器,API文档、测试、Mock全搞定
- bolt在java,java – 在Apache Storm中将不同的元组从1个spout发送到不同的bolt
- kafka自带的zk启动_KafKa 启动
- STM32启动文件详解
- 如何把自己写的python程序给别人用
- 江苏事业单位计算机类考申论吗,笔试将近!2020年江苏事业单位统考你要注意!...
- NTFS权限和文件详解
- JAVA学习(三)----常量和数据类型
- HtmlHelp调用chm帮助文档使用
- 带有分销体系的开源知识付费系统——cremb
- 用Python操控手机APP攻略一
- [租房]刚步入社会的小萌新,休想坑小妹妹,安排!
- 使用超声波测距模块控制LED灯