21图像滤波方法的比较实验报告.docx
《21图像滤波方法的比较实验报告.docx》由会员分享,可在线阅读,更多相关《21图像滤波方法的比较实验报告.docx(35页珍藏版)》请在冰豆网上搜索。
21图像滤波方法的比较实验报告
课程大作业实验报告
2.1图像滤波方法的比较
课程名称:
数字图像处理
组长:
张佳林
学号:
200830460232
年级专业班级:
08自动化2班
(ppt制作,数据整理)
成员一:
卢洪炬
学号:
200830460222年级专业班级:
08自动化2班
(实验报告,编程)
成员二:
余嘉俊
学号:
200830460231
年级专业班级:
08自动化2班
(编程,程序整理)
指导教师邓继忠
报告提交日期2010年12月4日项目答辩日期2010年12月5日
1项目要求·························································3
2项目开发环境·····················································3
3系统分析·························································33.1系统的主要功能分析············································3
3.2系统的基本原理················································4
3.1系统的关键问题及解决方法······································9
4系统设计························································104.1程序流程图及说明···········································10
4.2程序主要模块功能介绍·······································11
5实验结果与分析··················································115.1实验结果···················································11
5.2项目的创新之处·············································15
5.3存在问题及改进设想·········································15
6心得体会························································156.1系统开发的体会·············································15
6.2对本门课程的改进意见或建议·································15
1项目要求
1.1基本要求:
1)通过课本和网上查找资料,了解各种图像滤波的基本原理。
2)从网上选择并下载一些bmp格式的图像,图像要对比度鲜明,色彩丰富。
3)设计算法并编写程序,实现图像滤波。
4)调试与验证程序。
5)对不同方法滤波后的图像进行比较。
2项目开发环境
计算机、CVI软件、待处理图片
3系统分析
3.1系统的概念
图像滤波,即在尽量保留图像细节特征的条件下对目标像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接响到后续图像处理和分析的有效性和可靠性。
由于成像系统、传输介质和记录设备等的不完善,数字图像在其形成、
传输记录过程中往往会受到多种噪声的污染。
另外,在图像处理的某些环节当输入的像对象并不如预想时也会在结果图像中引入噪声。
这些噪声在图像上常表现为一引起较强视觉效果的孤立象素点或象素块。
一般,噪声
信号与要研究的对象不相关它以无用的信息形式出现,扰乱图像的可观测
信息。
对于数字图像信号,噪声表为或大或小的极值,这些极值通过加减
作用于图像象素的真实灰度值上,在图像造成亮、暗点干扰,极大降低了
图像质量,影响图像复原、分割、特征提取、图识别等后继工作的进行。
要构造一种有效抑制噪声的滤波机必须考虑两个基本问题能有效地去除目
标和背景中的噪声;同时,能很好地护图像目标的形状、大小及特定的几何
和拓扑结构特征。
3.2系统的基本原理
1)中值滤波:
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。
方法是去某种结构的二维滑
动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。
二维中值滤波输出为g(x,y)
=med{f(x-k,y-l),(k,l∈W)},其中,f(x,y),g(x,y)分别为原始图像和处理后图像。
W为二维模板,通常为2*2,3*3区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。
2)均值滤波:
均值滤波也称为线性滤波,其采用的主要方法为领域平均法。
线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待
处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点
(x,y),作为处理后图像在该点上的灰度个g(x,y),即个g(x,y)=1/m∑f(x,y)m为该模板中包含当前像素在内的像素总个数。
3)高斯滤波:
高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。
通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。
高斯滤波的具体操作是:
用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板
中心像素点的值。
若使用3×3模板,则计算公式如下:
g(x,y)={f(x-1,y-1)+f(x-1,y+1)+f(x+1,y-1)+f(x+1,y+1)+[f(x-1,y)+
f(x,y-1)+f(x+1,y)+f(x,y+1)]*2+f(x,y)*4}/16;
其中,f(x,y)为图像中(x,y)点的灰度值,g(x,y)为该点经过高斯滤波后的值。
4)梯度倒数加权平均法滤波:
梯度倒数加权法平滑基于如下的假设:
在一幅离散图像中,相邻区域的变化大于区域内部的变化,在同一区域中中间像素的变化小于边缘像素的变化。
梯度值正比于邻近像素灰度级差值,也就是说在图像变化缓慢区域,梯度值小,反之则大。
而取梯度倒数大小与梯度相反,因此,以梯度倒数作权重因子,则区域内部的邻点权重就大于边缘近旁或区域外的邻点。
即该种平滑其贡献上要来自区域内部的像素,平滑后图像的边缘和细节不会受到明显的损害。
建立归一化的权重矩阵窗口
W,对3*3窗口,W的组成为
w(x
1,y
1)
w(x
1,y)
w(x1,y1)
W
w(x,y1)
w(x,y)
w(x,y1)
w(x
1,y
1)
w(x
1,y)
w(x1,y1)
这里规定,w(x,y)=1/2,其余
8个加权系数之和为1/2。
并且定
义除w(x,y)外的其他权重矩阵元素为
w(xp,y
q)
g(x,y;p,q)
1
1
2
f(x,y;p,q)
p1q1
g(x,y;p,q)
1
p,y
q)
f(x,y)
f(x
式中p,q分别为-1,0,1,且p,q不能同时为零。
用矩阵窗口W与图像上以f(x,y)为中心的同样大小窗口上对应像
素灰度值分别相乘再求和,所得结果即为f(x,y)点的平滑值G(x,y)。
5)最大均匀性平滑滤波:
最大均匀性平滑滤波是针对一些滤波方法在消除噪声时引起边缘退化的现象而提出的,其基本思想是,若图像中的一个区域含有边缘,它
的灰度方差必定较大。
该方法采用了9种不同形状的模板,1个正方形模板,4个对称的五边形模板,4个对称的六边形模板,用各模板内的灰度方差作为各个区域不均匀性的测试,以最为均匀的区域灰度均值作为被处理点的像素值。
各模板内的平均灰度值为:
1N
(i,j)
fk(i,j)
f
Nr
1
kr
各模板的灰度方差为:
Vk
1N
[fkr(x,y)
fk(i,j)]2
Nr
1
选出灰度方差最小的模板:
Vt
min{Vk,k
1,2,,9}
将被选模板的平均灰度值作为被处理像素
f(i,j)的输出灰度值g(i,j):
g(i,j)ft(i,j),1t9
6)低通空域滤波:
低通空域滤波是一种保留图像的低频成分,减少图像的高频成分的处理方法,有的称之为消噪声掩膜法。
因为图像噪声常常以高频、随机的形式表现出来,大面积的背景区和亮度渐变区域则属低频成分。
低通空域滤波以卷积方法进行。
卷积方法实质是一种加权求和的过程。
选择某种形状的邻域,将邻域中的每个像素与卷积核中的对应元素相乘,乘积求和的结果即为模板中心像素的新值,卷积核中的元素称为加权系数。
K近邻均值滤波:
边界保持滤波器的核心是确定边界点与非边界点。
如图所示,点1是黄色区域的非边界点,点2
是蓝色区域的边界点。
在模板中,分别选出5个与点1或点2灰度值最相近的点进行计算,
不影响效果。
换句话说,对非边界点的影响不是很大,但是对边界点的
影响就非常大。
其算法步骤为:
1)以待处理像素为中心,作一个m*m的作用模板。
2)在模板中,选择K个与待处理像素的灰度差为最小的像素。
3)将这K个像素的灰度均值替换掉原来的像素值。
7)Sigma平滑滤波:
该算法建立在SAR图像的乘性噪声模型上,假设斑点噪声的分布为高斯分布,窗口内的像素灰度值与其中心像素的灰度值比较接近。
其基
本原理为:
Sigma滤波器将2范围内的像素进行平均,即可去除差别过
大的象素的影响。
我们知道,对于一维高斯分布,采样点落在2区间
的概率是93.5%。
在窗口滤波过程中,只选取窗口内像素灰度值落在2
范围内的点,将它们的平均值作为中心像素灰度的估计,而其它变化显
著的像素则被视作边缘而不做滤波处理。
首先计算滤波窗口内各像元灰度的平均值
gij
作为滤波中心像元
(i,j)
的平均值;然后再求窗口内标准差
ij
作为滤波中心像元点
(i,j)的
标准差,公式如下(设窗口为(2M+1)(2N+1)):
1
j
M
iN
gij
g(i,j)
g(k,l)
(3)
1)(2N
1)k
(2M
j
M
l
iN
1
j
M
i
N
2
(i,j)
g(i,j)gij
ij
1)(2N
1)k
(4)
(2M
j
M
l
i
N
Sigma滤波器的算法表达式如下:
im
j
n
gkl
kl
R
ki
ml
j
n
i
m
jn
(5)
kl
kimljn
1
gij(12F)
gkl
gij(12F)
kl
otherwise
(6)
0
F
/g
(7)
孤立散射体不应受到斑点平滑的影响,为此设置阈值,如果范围内
的象素数小于或等于K=(滤波窗口大小+1)/2,则以中心象素周围最
近的四点象素平均值作为滤波输出。
8)卡尔曼滤波:
卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递
推估计的算法,其基本思想是:
采用信号与噪声的状态空间模型,利
用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求
出现时刻的估计值。
它适合于实时处理和计算机运算。
卡尔曼滤波方程如下:
设待估计的随机信号的状态方程和观测方程已知为:
Xk
k,k
1
Xk1
k1Wk
(1)
Zk
HkXk
Vk
(2)
其中,Xk
为在tk
时刻的n
1的状态向量;Xk1
为在tk前
一时刻的n
1的状态向量;
k,k
1为tk
1时刻至tk
时刻的一步
转移阵;
k1
为系统噪声驱动阵;Wk为系统激励噪声序列;Hk为
量测阵;Vk为量测噪声序列;Zk为tk
时刻的m1状态观测向
量。
噪声的已知统计特性如下:
E[
T]
Qkki
i
k
k
E[wvT]0,
i
0
i
k
ki
E[vkviT
Rkki
]
0
ik
ik
卡尔曼滤波所要解决的问题是如何根据前述已知的条件,在均方
误差最小的准则下,用状态向量的先验估计值Xk/k1、观测值Zk与
相应的误差估计值Pk去修正先验估计值,得到最优估计值Xk,并估
计出相应的误差。
卡尔曼滤波从与被提取信号有关的量测量中通过算法估计出所需信号。
卡尔曼滤波处理有几个特点:
(1)卡尔曼滤波处理的对象是随机信号;
(2)被处理信号无有用和干扰之分,滤波的目的是要估计出所有被处理信号;确切的说卡尔曼滤波应称作最优估计理论;就实现形式而言,卡尔曼滤波器实质上是一套由数字计算机实现的递推算法。
量测量可看作卡尔曼滤波器的输入,估计值可看作输出。
3.3系统的关键问题及解决方法
1)问题:
最大均值滤波的9个模块如何取?
解决方法:
因为这9个模块除了旋转外没有其他规律,在C语言中
很难表达,所以我们用了直接取值的方法,虽然这是最笨的方法,运行的时间也比较长,但也没办法,希望以后能改进!
2)问题:
KNN近邻均值中如何取前五个与中心灰度值最相近的灰度值?
解决方法:
先读取模版的所有灰度值到一个数组中,然后分别减去
中心值,把差放到另外一个数组中,最后用冒泡法将差值排序,同时讲对应的灰度值也调换位置。
3)问题:
梯度倒数法中,当梯度接近为零的时候,梯度倒数无穷大,
使图像灰度值为满值。
解决方法:
当梯度接近为零的时候,令权重因子g的值为2。
4系统设计
4.1程序流程图及说明
打开源图像
添加噪声图像过滤
比较图像
保存图像
退出
图1系统执行框图
图2软件主页面
图1为程序执行的框图,图2为软件设计的页面,SourceImage为源图像显示位置,Destimage为生成图像显示位置,不同的滤波方式显示在不同区域以便比较不同滤波方式的效果。
4.2程序主要模块功能介绍
1)打开源图像(Load_file):
这里采用函数
DisplayImageFile(panelHandle,PANEL_PICTURE,lPath);
使图像显示在指定区域。
2)图像处理时间:
先定义开始与结束两个时间clock_tbegin,end
处理前调用一次clock函数begin=clock();
结束时再调用一次clock函数end=clock();
cost=(double)(end-begin)/CLOCKS_PER_SEC;
3)彩色图像处理:
IPI_ExtractColorPlanes(SourceImage,RedImage,GreenImage,BlueImage,
IPI_RGB);
4)处理后图像显示:
把目标图像保存在指定位置
IPI_WriteFile(DestImage2,"d:
\\k.bmp",IPI_FILE_BMP,NULL,NULL);
再把目标文件打开
DisplayImageFile(panelHandle,PANEL_PICTURE_2,"d:
\\k.bmp");
删除目标文件
DeleteFile("d:
\\k.bmp");
5实验结果与分析
5.1实验结果
图2面板
图3椒盐彩色图像图4高斯彩色图像
图5高斯滤波后椒盐彩色头像图6高斯滤波后的高斯彩色图像
图7梯度滤波后椒盐彩色头像图8梯度后的高斯彩色图像
图9最大均匀平滑滤波后椒盐彩色头像图10最大均匀后的高斯彩色图像
图11低通3*3滤波后椒盐彩色头像图12低通3*3后的高斯彩色图像
图135*57*79*9滤波后椒盐彩色头像
图14K近邻均值滤波后椒盐彩色图图1514K近邻均值滤波后椒盐彩色图
图16sigma滤波后椒盐彩色头像图17sigma平滑后的高斯彩色图像
5.2项目的创新之处
1)实现彩色图像滤波,可以选择的输出灰色图像或者彩色图像。
2)实现了多个框架承载图像,继而实现了多幅滤波图像的对比。
5.3存在问题及改进设想
1)问题:
卡尔曼滤波的原理很难理解
改进设想:
好好学习,继续钻研,应先画简化图促进理解。
2)问题:
每当显示图像时都要先写入到内存中再显示到面板上。
改进设想:
希望能找到一种方法,直接将图像显示到面板上。
6心得体会
6.1系统开发的体会
CVI与IMAQ两个库里面的函数很多,但因为是英文版,我们组没有很
清楚里面的每个函数的每个功能,这应该是我们在做这个大作业的最大体会
吧!
因为英语的不过关,直接导致许多函数及其功能都不知道,只能说,英
语真的很重要!
而最后我们组所设计的程序还是属于比较粗糙的,同时卡尔
曼滤波没有设计出来,这是我们最大的遗憾!
但还能实现了基本功能以及加
噪声的功能,除此之外,版面的设计还算可以!
通过这次系统的开发,不仅
让我们增加了我们的团队凝聚力,还让我们彼此根据各自的长处更加协调的
分配任务,最重要的是让我们比较入门地掌握了CVI软件开发的流程。
6.2对本门课程的改进意见或建议
建议老师可以比较系统地介绍下CVI这个开发系统,以及我们大作业可
能会涉及到的一些函数。