DCT在图像去噪中的应用.docx
- 文档编号:10326912
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:14
- 大小:350.20KB
DCT在图像去噪中的应用.docx
《DCT在图像去噪中的应用.docx》由会员分享,可在线阅读,更多相关《DCT在图像去噪中的应用.docx(14页珍藏版)》请在冰点文库上搜索。
DCT在图像去噪中的应用
摘要
图像是一种重要的信息源,通过图像处理可以帮助人们了解到图像的内涵。
数字图像噪声去除涉及光学系统、微电子技术、计算机科学、数学分析等领域,是一门综合性很强的边缘科学。
DCT变换(DiscreteCosineTransform)是一种与傅立叶变换紧密相关的数学运算。
在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换。
离散余弦变换在图像处理中占有重要的地位,尤其是在图像的变换的编码中有着非常成功的应用。
本次课题以DCT变换为核心,结合数字图像处理中的MATLAB去除图像中的噪声。
本文概述了用DCT变换技术去除图像中噪声的原理和几种应用。
关键字:
DCT变换、数字信号处理、图像去噪
目录
1绪论1
1.1课题描述1
1.2图像去噪1
1.3DCT在图像去噪中的应用简述2
2图像去噪方法的介绍3
2.1图像平滑3
2.1.1邻域平均法3
2.1.2中值滤波3
2.1.3单片机AT89C51的性能参数4
2.1.4单片机AT89C51的晶振电路4
2.1.5单片机AT89C51的应用5
2.2小波滤波方法5
2.2.1模极大值重构滤波6
2.2.2空域相关滤波6
3DCT的应用7
3.1DCT的简介7
3.2DCT的实现9
4软件DCT在图像去噪中的应用11
4.1.软DCT在图像去噪中应用原理11
4.2程序清单12
4.3仿真图12
总结13
参考文献14
1绪论
1.1课题描述
本次课题以数字图像处理为核心,结合MATLAB数学软件,采用DCT对图像进行变换,以达到去除图像中噪声的目的。
图像处理分为模拟图像处理和数字图像处理。
数字图像处理是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。
数字图像处理的方法分为两类,空间域处理法和频域处理法一般数字图像处理,的计算方法本质都可看成是线性的,处理后的输出图像矩阵列可看作输入图像阵列的各个元素经加权线性组合而得到,这种空间线性处理要比非线性处理简单。
但图像矩阵列一般都很大,如果没有有效的算法,计算上比较复杂、费时。
图像变换可以将图像从空间域转换到频率域,然后在频率域对图像进行各种处理,再将所得到的结果进行反变换,即从频率域变换到空间域,从而达到图像处理的目的。
在进行图像转换过程需要使用MATLAB数学软件,它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩形运算、绘制函数和数据、实现算法、创建用户界面等在图形转换可以发挥它强大的功能对图像进行去噪等一系列的处理。
这里用到的DCT(离散余弦变换)实际是傅里叶变换的实数部分但是它比傅里叶变换有更强的信息集中能力,对于大部分自然图像,离散余弦变换能将主要的信息的系数上去因此更能提高去除图像噪声的能力。
1.2图像去噪
噪声是图象干扰的重要原因。
一幅图象在实际应用中可能存在各种各样的噪声,这些噪声可能在传输中产生,也可能在量化等处理中产生。
根据噪声和信号的关系可将其分为三种形式:
(f(X,Y)表示给定原始图象,g(X,Y)表示图象信号,n(X,Y)表示噪声。
)
1)加性噪声,此类噪声与输入图象信号无关,含噪图象可表
示为f(X,Y)=g(X,Y)+n(X,Y),信道噪声及光导摄像管的摄像机扫描图
象时产生的噪声就属这类噪声。
2)乘性噪声,此类噪声与图象信号有关,含噪图象可表示为f(X,Y)=g(X,Y)+n(X,Y)g(X,Y),飞点扫描器扫描图象时的噪声,电视图象中的相干噪声,胶片中的颗粒噪声就属于此类噪声。
3)量化噪声,此类噪声与输入图象信号无关,是量化过程存在量化误差。
再反映到接收端而产生。
在去除图像中的噪声时通常会用如下几种方法。
均值滤波法:
采用邻域平均法的均值滤波器非常适用于去除通过扫描得到的图象中的颗粒噪声。
领域平均法有力地抑制了噪声,同时也由于平均而引起了模糊现象,模糊程度与领域半径成正比。
几何均值滤波器所达到的平滑度可以与算术均值滤波器相比,但在滤波过程中会丢失更少的图象细节。
谐波均值滤波器对“盐”噪声效果更好,但是不适用于“胡椒”噪声。
它善于处理像高斯噪声那样的其他噪声。
逆谐波均值滤波器更适合于处理脉冲噪声,但它有个缺点,就是必须要知道噪声是暗噪声还是亮噪声,以便于选择合适的滤波器阶数符号,如果阶数的符号选择错了可能会引起灾难性的后果。
中值滤波器:
它是一种常用的非线性平滑滤波器,其基本原理是把数字图像或数字序列中一点的值用该点的一个领域中各点值的中值代换其主要功能是让周围象素灰度值的差比较大的像素改取与周围的像素值接近的值,从而可以消除孤立的噪声点,所以中值滤波对于滤除图像的椒盐噪声非常有效。
中值滤波器可以做到既去除噪声又能保护图像的边缘,从而获得较满意的复原效果,而且,在实际运算过程中不需要图象的统计特性,这也带来不少方便,但对一些细节多,特别是点、线、尖顶细节较多的图象不宜采用中值滤波的方法。
形态学小波滤波器:
将开启和闭合结合起来可用来滤除噪声,首先对有噪声图象进行开启操作,可选择结构要素矩阵比噪声的尺寸大,因而开启的结果是将背景上的噪声去除。
最后是对前一步得到的图象进行闭合操作,将图象上的噪声去掉。
根据此方法的特点可以知道,此方法适用的图像类型是图象中的对象尺寸都比较大,且没有细小的细节,对这种类型的图像除噪的效果会比较好。
1.3DCT在图像去噪中的应用简述
单片机通过扩展DAC接口,结合灵活的程序可以方便地产生各种低频信号。
下面以正弦信号为例进行说明。
正弦波的产生比较特殊,它不能由单片机直接产生,它只能产生如图1.2所示的阶梯波来向正弦波逼近。
2图像去噪方法的介绍
2.1图像平滑
人们根据实际图像的特点、噪声的统计特征和频谱分布规律,发展了各式各样的去噪方法,其中最为直观的方法是根据噪声能量一般集中于高频、而图像频谱则分布于一个有限区间的这一特点,采用低通滤波来进行去噪的方法,例如滑动平均窗滤波器,还有Wiener线性滤波器、基于一阶滤波(排序量)的方法、基于马尔可夫模型和基于偏微分方程(PDE,PartialDifferentialEquation)的方法和Lp正规化方法等。
目前,数字图像平滑处理有很多方法,其中空域平滑是数字图像处理领域比较活跃的一个分支,已有几十年的研究探索,并形成了较为系统的算法。
从本质上讲,图像去噪的方法都是低通滤波的方法,而低通滤波是一把双刃剑,它在消除图像噪声的同时,也会消除图像的部分有用的高频信息,因此,各种去噪方法的研究实际是在去噪和保留高频信息之间进行的权衡。
2.1.1邻域平均法
邻域平均法是将一个像素及其邻域中所有像素的平均值赋给输出图像中相应的像素,从而达到平滑的目的,又称均值滤波。
其过程是使一个窗口在图像上滑动,窗口中心位置的值用窗内各点值的平均值来代替,即用几个像素的灰度平均值来代替一个像素的灰度。
其主要的优点是算法简单、计算速度快,但其代价是会造成图像一定程度的模糊。
为解决邻域平均法造成图像模糊的问题,可采用阈值法、K邻点平均法、梯度倒数加权平滑法、最大均匀性平滑法、小斜面模型平滑法等。
它们讨论的重点都在于如何选择邻域的大小、形状和方向,如何选择参加平均的点数以及邻域各点的权重系数等。
2.1.2中值滤波
中值滤波(MedianFiltering)是一种基于排序统计理论的可有效抑制噪声的非线性平滑滤波。
其滤波原理是:
首先确定一个以某个像素为中心点的邻域,一般为方形邻域,然后将邻域中各像素的灰度值进行排序,取中间值作为中心像素灰度的新值,这里的邻域通常被称为窗口;当窗口在图像中上下左右进行移动后,利用中值滤波算法可以很好地对图像进行平滑处理。
中值滤波的输出像素是由邻域图像的中间值决定的,因而中值滤波对极限像素值(与周围像素灰度值差别较大的像素)远不如平均值那么敏感,从而可以消除孤立的噪声点,可以使图像产生较少的模糊。
中值滤波去除噪声的效果除了与噪声的类型有关外,还与邻域的空间范围和中值计算中涉及的像素数有关。
一般来说,小于滤波器面积一半的亮或暗的物体基本上会被滤除,而较大的物体几乎原封不动地保存下来,因此,中值滤波器的空间尺寸必须根据现有的问题来进行调整。
较简单的模板是NN的方形(注:
此处的N通常是奇数)。
总之,中值滤波具有算法简单、实时性好、可靠性高等特点,既能保护图像的边缘信息,又可以除去图像中的噪声,具有较高的实用价值。
2.1.3单片机AT89C51的性能参数
●与MC-51产品指令系统完全兼容
●4K字节可重擦写Flash闪速存储器
●1000次擦写周期
●全静态操作:
0Hz—24Hz
●三级加密程序存储器
●128×8字节内部RAM
●32个可编程I/O口线
●2个16位定时/计数器
●6个中断源
2.1.4单片机AT89C51的晶振电路
单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率,晶振电路如图2.2所示:
图2.2晶振电路
在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。
高级的精度更高。
有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。
晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
单片机晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。
如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。
2.1.5单片机AT89C51的应用
当今世界,各种先进的科学技术飞速发展,给人们的生活带来了深远的影响,它极大的改善我们的生活方式。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,高精度,宽调幅,低价格将成为数字量信号发生器的发展趋势。
2.2小波滤波方法
近年来,小波理论得到了非常迅速的发展,而且由于其具备良好的时频局部化能力和多分辨率分析能力,因而在图像处理各领域有非常广泛的应用。
在去噪领域中,小波理论深受许多学者的重视,他们应用小波变换进行去噪,并获得了非常好的效果。
小波分析在信号去噪方面所表现出的优势及其潜力一直是研究的热点,而且也取得了一定的成果。
目前,小波去噪方法大概可分为三大类:
第一类方法是由Mallat提出的小波变换模极大值去噪方法;第二类方法是基于小波变换的相关去噪方法;第三类方法是Donoho提出的阈值方法。
2.2.1模极大值重构滤波
信号的模极大值重构是利用信号在各个尺度上小波系数的模极大值来重构信号。
信号小波系数的模极大值包含了信号的峰变性与奇异性,如果可以从这些极大值来重构信号,那么就可以通过处理小波系数的模极大值而实现对信号奇异性的修改,也可以通过抑制某些极大值点而去除相应的奇异性,这是模极大值重构滤波的基本思想。
模极大值重构滤波方法是根据信号和噪声在小波变换下随尺度变换呈现出的不同变化特性提出的,有很好的理论基础,因而滤波性能较为稳定,它对噪声的依赖性较小,不需要知道噪声的方差,特别是对低信噪比的信号滤波时更能体现其优越性。
然而它有一个根本性的缺点,就是在滤波过程中存在一个由模极大值重构小波系数的问题,从而使得该方法的计算量大大增加,另外其实际滤波效果也并不十分令人满意
2.2.2空域相关滤波
Witkin首先提出了利用尺度空间相关性来对信号滤波的思想,对含噪信号经过子带分解后,从粗尺度到细尺度逐步搜索信号的主要边缘,最终从噪声背景中得到真实信号。
Xu在此基础上,于1994年提出了空域相关滤波的方法。
由于信号的突变点有良好的局部性质,并且出现在各个尺度上,而噪声的能量却集中在小尺度上,其小波系数随着尺度的增大而迅速衰减。
因此,可以考虑利用小波系数在不同尺度上对应点处的相关性来确定是信号系数还是噪声系数,这样处理后的小波系数基本上对应着信号的边缘,达到了滤波的目的。
Xu基于上述原理提出了空域相关滤波算法:
信号的突变点在不同尺度的同一位置都有较大的峰值出现,噪声能量却随着尺度的增大而减小。
因此,可以取相邻尺度的小波系数直接相乘进行计算,这样做相关计算将在锐化信号边缘与其他重要特征的同时抑制噪声,而且能够提高信号主要边缘的定位精度,更好地刻画真实信号。
空域相关滤波方法在对含噪信号进行滤波时取得了很好的效果,其实现原理也较简单,但其计算量大,需要迭代,并且用到了小波阈值滤波的一些思想。
在实际应用时,还需要估计噪声方差才能设定适当的阈值。
3DCT的应用
3.1DCT的简介
离散余弦变换(DCTforDiscreteCosineTransform)是性能上最接近K-L最佳变换的变换,由于其相比离散余弦变换很多有快速算法,便于实现,所以经常被信号处理和图像处理使用,用于对信号和图像进行有损数据压缩。
离散余弦变换(DCTforDiscreteCosineTransform)将一个原始的实数序列变成对称(反对称)序列,再对对称(反对称)序列进行DFT变换,提取变换系数。
由于构造对称(反对称)序列的方式不同,可以分为8类DCT变换。
其中三类主要的离散余弦变换:
离散余弦变换在数据压缩中的意义:
满足Passevel定理:
保持能量不变,去相关:
可以减少冗余,得到数据的极限熵,达到更高的压缩倍数。
能量重新分配与集中:
在质量允许下可以舍弃能量较小者,或者在编码时给其分配较少的位数,提高编码的效率,从而提高压缩效率。
i
对于使用N*N大小的变换矩阵A的2D-DCT变换:
1)N小:
便于自适应,计算速度快,实现简单,但方块效应严重
2)N大:
去相关效果好,但渐渐驱饱和,N过大,去相关效果变好不明显,但是会大大增加计算量.在图像编码标准JEPG中和视频编码标准H.261/H.263和MPEG1,MPEG2,均使用8*8分块的2D-DCT变换;在H.264中使用的是4*4分块的2D-DCT整数变换,需要去方块效应滤波。
在H.264中,对于公式A中的a、b和c是实数,而图像块X中的元素是整数。
对实数的DCT,由于在解码端的浮点运算精度问题,会造成解码后的数据的失配,进而引起漂移。
H.264较其他图像编码使用了更多的预测过程,甚至内部编码模式也依赖于空间预测。
因此H.264对预测漂移是十分敏感的。
为此,H.264对4×4DCT中的A进行了改造,采用整数DCT技术,可有效地减少计算量,同时不损失图像的准确度。
3.2DCT的实现
functionOpenFile
globalgmainData;
[fname,pname]=uigetfile('*.bmp','打开文件');
iffname==0
return;
end
[Data,map]=imread(fname);%读取图像数据
%new=rgb2gray(Data);
%imwrite(new,'new.bmp','bmp')
%Data=im2bw(Data,map,0.6);%im2bw转为二进制阈值0.6
%Data=+Data;%逻辑格式转为浮点格式
Data=rgb2gray(Data);
subplot(1,2,1);%准备显示两幅图像
imshow(Data);
functionDCTcode;
globalData;%全局变量,用于共享图像数据
[m,n]=size(Data);
fid=fopen('dct.bin','w+');%创建dct.bin用存储DCT和BTC混合编码后的二进制文件。
%补0使尺寸为4的整数倍以便分块
m1=4*ceil(m/4);n1=4*ceil(n/4);
Datatemp=zeros(m1,n1);
Datatemp(1:
m,1:
n)=Data;
%
fwrite(fid,m1,'long');fwrite(fid,n1,'long'); %在文件中记录图像大小
block=zeros(4,4); %4X4大小的子带
forj=1:
4:
n
fori=1:
4:
m
fort=0:
1:
3
forp=0:
1:
3
block(1+t,1+p)=Datatemp(i+t,j+p);%取出4X4数据块
end
end
%对变换后数据进编码后存储或发送,只取其中的2X2数据
DctBlock=dct2(block);
%存储(发送)编码文件
fwrite(fid,DctBlock(1,1),'bit12');%直流分量,用12bit量化
fwrite(fid,DctBlock(1,2),'bit9');%用9bit量化非直流分量
fwrite(fid,DctBlock(2,1),'bit9');
fwrite(fid,DctBlock(2,2),'bit9');
end
end
fclose(fid);
functionIDctcode;
fid=fopen('dct.bin','r');
m=fread(fid,1,'long');n=fread(fid,1,'long');
data=zeros(m,n);%用于存放图像数据
temp=zeros(4,4);
block=zeros(4,4);
%读取方块数据
forj=1:
4:
n
fori=1:
4:
m
block(1,1)=fread(fid,1,'bit12');
block(1,2)=fread(fid,1,'bit9');
block(2,1)=fread(fid,1,'bit9');
block(2,2)=fread(fid,1,'bit9');
temp=idct2(block);
fort=0:
1:
3
forp=0:
1:
3
Data(i+t,j+p)=temp(1+t,1+p);
end
end
end
end
data=uint8(Data);
subplot(1,2,2);
imshow(data);%显示图像
fclose(fid);
图3.2主控电路
4软件DCT在图像去噪中的应用
4.1.软DCT在图像去噪中应用原理
离散余弦变换,尤其是它的第二种类型,经常被信号处理和图像处理使用,用于对信号和图像(包括静止图像和运动图像)进行有损数据压缩。
这是由于离散余弦变换具有很强的"能量集中"特性:
大多数的自然信号(包括声音和图像)的能量都集中在离散余弦变换后的低频部分,而且当信号具有接近马尔可夫过程(Markovprocesses)的统计特性时,离散余弦变换的去相关性接近于K-L变换变换--它具有最优的去相关性)的性能。
例如,在静止图像编码标准JPEG中,在运动图像编码标准MJPEG和MPEG的各个标准中都使用了离散余弦变换。
在这些标准制中都使用了二维的第二种类型离散余弦变换,并将结果进行量化之后进行熵编码。
这时对应第二种类型离散余弦变换中的n通常是8,并用该公式对每个8x8块的每行进行变换,然后每列进行变换。
得到的是一个8x8的变换系数矩阵。
其中(0,0)位置的元素就是直流分量,矩阵中的其他元素根据其位置表示不同频率的交流分类。
从而实现随图像中噪声去除的目的。
4.2程序清单
N=0.1;
I=imread('E:
\sample.jpg')
figure(1.2.1),imshow(I);
I=rgb2gray(I);
I=im2double(I);
fun_1=@dct2;
A_1=blkproc(I,[88],fun_1);
figure(1.2.2),imshow(A_1);
4.3仿真图
本文中仿真图像是以MATLAB为平台,使用DCT程序,对原图像进行图像转换,去除原图像中的噪声,仿真对比图如下图所示:
图4.1MATLAB的仿真图
总结
通过着为期半个月的信息论与编码的课程设计,我对信息论与编码的基础理论知识有了一定的熟悉和掌握,并且在老师和同学的帮助下掌握了DCT在图像去噪的应用。
在刚开始的时候,由于我MATLAB这门课学的不好,十分担心自己能不能跟上同学们的步伐。
还是要感谢老师,在刚开始的时候给了我们足够的时间来学习理论知识,并且给了我们不少的教学资料,这些资料对我们后来的系统开发有很大帮助。
给我感触最大的就是这份实验报告的书写,老师的要求很严格,对我们的要求很高。
让我们严格按照毕业论文的格式来书写,开始可能会很不理解,但是这真的是对我们有好处的,可以帮助我们养成良好的习惯和严谨的态度。
正所谓优秀是一种习惯,而这种优秀的习惯正是在严师的督促下一点点形成的。
通过这次课程设计,我不仅学到了知识,而且更重要的是培养了一种自学能力,我想这才是这学期的真正意义所在。
参考文献
[1]王慧琴.数字图像处理.北京:
北京邮电大学,2006.7.
[2]董长虹.MATLAB信号处理与应用.国防工业出版社,2005
[3]曹雪虹,张宗橙.信息论与编码.北京:
清华大学出版社,2007.
[4]娄莉.基于离散余弦变换的图像压缩技术.现代电子技术,2004.
[5]王慧琴.数字图像处理.北京:
北京邮电大学出版社,2007.
[6]李秀敏.基于MATLAB的DCT变换在JPEG图像压缩中的应用.光电与控制,2005.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DCT 图像 中的 应用
![提示](https://static.bingdoc.com/images/bang_tan.gif)