1、学校代码: 10128学 号: 201220203053数字图像处理课程设计题 目: 数字图像处理及算术编码(或DCT压缩编码)仿真实现学生姓名: 陈浩 学 院: 信息工程学院系 别: 电子信息工程系专 业: 电子信息工程班 级: 电子12-2指导教师: 吕方 黎玉玲 2015 年 12月 28 日数字图像处理课程设计1、课程设计目的通过本课程设计使学生了解数字图像的基本概念,掌握数字图像处理的基本内容,如图像点运算、几何变换、增强处理、图像复原、边缘检测以及图像压缩等的基本原理和Matlab实现方法。通过本次课程设计,让学生掌握如何学习一门语言,如何进行资料查阅搜集,如何自己解决问题等方法,
2、养成良好的学习习惯。扩展理论知识,培养学生的综合设计能力。2、课程设计内容2.1 图像处理基本功能1)数字图像的变换:普通傅里叶变换(ft)与逆变换(ift)、快速傅里叶变换(fft)与逆变换(ifft)、离散余弦变换(DCT),小波变换。2) 数字图像直方图的统计及绘制等;2.2 图像处理综合功能1)图像平滑算法程序设计:2)DCT压缩(保留不同系数),要求显示原图像、压缩后图像的文件大小、压缩比或算术编码压缩3、 课程设计的一般步骤1) 选题与搜集资料:选择课题,进行系统调查,搜集资料。2) 分析与设计:根据搜集的资料,进行功能分析,并对系统功能与模块划分等设计。3) 程序设计:运用掌握的
3、语言,编写程序,实现所设计的功能。4) 调试与测试:自行调试程序,同学之间交叉测试程序,并记录测试情况。5) 验收与评分:指导教师对每个成员开发的程序进行综合验收,结合设计报告,根据课程设计成绩的评定方法,评出成绩。1.普通傅里叶变换(ft)与逆变换(ift)傅里叶变换是一个非常复杂的理论,我们在图像处理中集中关注于其傅里叶离散变换离散傅立叶变换(Discrete Fourier Transform)。图象是由灰度(RGB)组成的二维离散数据矩阵,则对它进行傅立叶变换是离散的傅立叶变换。对图像数据f(x,y)(x=0,1, ,-1; y=0,1, ,N-1)。则其离散傅立叶变换定义可表示为:
4、式中,u=0,1, M-1;v= 0,1, N-1其逆变换为式中,x=0,1, M-1;y= 0,1, N-1程序如下:t=imread(D:chenhao.jpg);t=rgb2gray(t);figure,subplot(2,1,1)imshow(t);title(原灰度图象);m,n=size(t);M=zeros(m,m);N=zeros(n,n);for i=1:m for k=1:m M(i,k)=exp(2*pi*i*k*(-j)/m); endend for k=1:n for i=1:n N(k,i)=exp(2*pi*i*k*(-j)/n); endendt=double(
5、t);T = M*t*N;Ni=N;Mi=M;Ti = Mi*T*Ni/(m*n);subplot(2,2,3),imshow(uint8(T)title(傅里叶变换频谱);subplot(2,2,4),imshow(uint8(Ti);title(傅里叶逆变换图像);图像如下:2.快速傅里叶变换(fft)与逆变换(ifft)可分离性的优点是二维的傅立叶变换或逆变换由两个连续的一维傅立叶变换变换来实现,对于一个影像f(x,y),可以先沿着其每一列求一维傅立叶变换,再对其每一行再求一维变换。正变换逆变换由于二维的傅立叶变换具有可分离性,故只讨论一维快速傅立叶变换。 正变换逆变换由于计算机进行运算
6、的时间主要取决于所用的乘法的次数。按照上式进行一维离散由空间域向频率域傅立叶变换时,对于N个F(u)值,中的每一个都要进行N次运算,运算时间与N2成正比。程序如下:I=imread(D:/chenhao.jpg); subplot(1,2,1),imshow(I); title(原始图像);f=rgb2gray(I);F1=fft2(f); subplot(1,2,2),imshow(F1); title(二维离散傅里叶变换后的频谱);figure,subplot(2,2,1),imshow(log(abs(F1)+1),0 10); title(图像的频谱图);F2=fftshift(F1)
7、; subplot(2,2,2),imshow(log(abs(F2)+1),0 10);title(中心化的频谱图);F3=ifft2(F1);subplot(2,2,3),imshow(uint8(F3);title(傅立叶逆变换);subplot(2,2,4),imshow(f);title(灰度图像);图像如下:3.离散余弦变换(DCT)离散形式 式中,逆变换 在MATLAB中,采用dct2和idct2分别进行二维DCT变换和二维DCT逆变换。二维DCT常用于信号和图像处理,典型应用是对静止图像和运动图像进行性能优良的有损数据压缩。在静止图像编码标准JPEG、运动图像编码标准MJPEG
8、和MPEG等标准中都使用了8*8块的离散余弦变换,并将结果进行量化之后进行熵编码。DCT具有很强的能量集中在频谱的低频部分的特性,而且当信号具有接近马尔科夫过程(Markov processes)的统计特性时,DCT的去相关性接近于具有最优去相关性的K-L变换(Karhunen-Loeve变换)的性能。另外,改进的离散余弦变换(Modified Discrete Cosine Transform,MDCT)对交叠的数据进行DCT,有助于避免由于区块边界所产生的多余数据,被用在高级音频编码(Advanced Audio Coding,AAC)、Ogg Vorbis、AC3和MP3音频压缩中。程序
9、如下:RGB=imread(D:/chenhao.jpg);I=rgb2gray(RGB); subplot(2,2,1),imshow(RGB);title(原始图像);C1=dct2(I); subplot(2,2,2),imshow(log(abs(C1),),colormap(jet(64),colorbartitle(图像大部分能量集中在上左角);C2=fftshift(C1); subplot(2,2,3),imshow(log(abs(C2)+1,0 10);title(DCT系数);C3=idct2(C1); subplot(2,2,4),imshow(uint8(C3); t
10、itle(灰度图像);图像如下:4.小波变换离散形式式中,和分别函数在轴上的,平移量。逆变换 类似地,可以定义二维离散小波变换逼近,并采用Mallat二维快速算法求解。与DFT类似,可分离二维小波变换最终可转换为两次一维小波变换。对图像进行小波变换的MATLAB常用函数有: 对图像进行一层二维小波分解,常见形式为: CA,CH,CV,CD=dwt2(X,wname)式中,X为图像矩阵;wname是使用的小波基函数名称,如可选择双正交样条小波基函数,形式为biorNr.Nd。 查询使用的小波基函数的信息,使用形式为: Waveinfo(wname)式中,小波基名称wname可选用haar(哈尔小
11、波)、db(Daubechies 小波)、bior(双正交样条小波)等。例如,在命令行状态下键入wavainfo(bior)进行查询双正交样条小波,可知r表示reconstruction(重建),d表示decomposition(分解),N表示相应FIR滤波器的阶数;CA、CH、CV、CD分别是输入矩阵X小波分解的近似系数矩阵、水平细节系数、垂直细节系数和对角线细节系数。 对二维小波分解的图像进行各种分量的重构,常见函数形式为: Y=upcoef2(O,X,wname,N)式中,X是分解后的细节信号,Y是重构的细节信号分量;N表示对矩阵X的系数进行重建的步骤数,即重构的层数,默认值为1。O是细
12、节信号的类型。如果O=a,则表示对信号的近似系数进行重建;否则,如果O=h、v或d,则分别对水平、垂直或对角线细节进行重建。 对应上述的一层二维小波变换DWT2函数,进行一层二维小波变换逆变换,常见形式为: X=idwt2(CA,CH,CV,CD,wname)idwt2函数采用wname所指示的小波、已重建的基于近似矩阵CA,以及水平细节CH、垂直细节CV和对角线细节CD计算原图像矩阵X。 对重构的图像进行量化编码,常见函数形式为: Y=wcodemat(X,NBCODES,OPT,ABSOL)式中,X为待进行量化编码的矩阵,Y为编码矩阵。在编码中,把矩阵X中元素绝对值最大的作为NBCODES
13、(整数),绝对值最小的作为1,其他元素依其绝对值的大小在1与NBCODES中排列。当OPT为row时,做行编码;当OPT为col时,做列编码;当OPT为mat时,做全局编码,即把整个矩阵中元素绝对值最大的元素作为NBCODES,最小的作为1.当ABSOL为0时,该函数返回输入矩阵X的一个编码版本,当ABSOL非0时,返回X的绝对值。程序如下:A=imread(jpg.jpg);B=rgb2gray(A);C,S=wavedec2(B,2,bior3.7);cA2=appcoef2(C,S,bior3.7,2);cA1=appcoef2(C,S,bior3.7,1);cH1,cV1,cD1=detcoef2(all,C,S,1);A1 = wrcoef2(a,C,S,bior3.7,1); A2 = wrcoef2(a,C,S,bior3.7,1); H1 = wrcoef2(h,C,S,bior3.7,1); V1 = wrcoef2(v,C,S,bior3.7,1); D1 = wrcoef2(d,C,S,bior3.7,1); C1=A1,H1;V1,D1;subplot(221); imshow(uint8(B);title(原图);subplot(222); imshow(uint8(C1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1