通信工程毕业设计(论文)数字图像压缩编码方法的研究.doc

上传人:仙人指路1688 文档编号:3994392 上传时间:2023-03-30 格式:DOC 页数:22 大小:1.73MB
返回 下载 相关 举报
通信工程毕业设计(论文)数字图像压缩编码方法的研究.doc_第1页
第1页 / 共22页
通信工程毕业设计(论文)数字图像压缩编码方法的研究.doc_第2页
第2页 / 共22页
通信工程毕业设计(论文)数字图像压缩编码方法的研究.doc_第3页
第3页 / 共22页
通信工程毕业设计(论文)数字图像压缩编码方法的研究.doc_第4页
第4页 / 共22页
通信工程毕业设计(论文)数字图像压缩编码方法的研究.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《通信工程毕业设计(论文)数字图像压缩编码方法的研究.doc》由会员分享,可在线阅读,更多相关《通信工程毕业设计(论文)数字图像压缩编码方法的研究.doc(22页珍藏版)》请在三一办公上搜索。

1、本 科 生 毕 业 设 计 论 文 数字图像压缩编码方法的研究院 系: 电子信息工程学系 专 业: 通信工程 班 级: 学 号: 指导教师: 职称(或学位): 讲师 2011年04月原创性声明 本人郑重声明:所呈交的论文(设计),是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文(设计)不含任何其他个人或集体已经发表或撰写过的作品成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学生签名: 年 月 日 指导声明本人指导的 同学的毕业论文(设计)题目大小、难度适当,且符合该同学所学专业的培

2、养目标的要求。本人在指导过程中,通过网上文献搜索及文献比对等方式,对其毕业论文(设计)内容进行了检查,未发现抄袭现象,特此声明。指导教师签名: 年 月 日目 录1 绪论21.1 引言21.2 数字图像压缩编码的分类21.3 图像压缩技术的性能指标21.4 研究内容32 无损压缩编码的研究和实现32.1 行程编码32.2 哈弗曼编码52.3 线性预测编码63 有损压缩编码研究和实现73.1 基于DCT的图像压缩编码83.2 基于哈达玛变换(HT)的图像压缩编码103.3 小波编码124 JPEG部分压缩算法的研究和实现145 总体设计156 结论17致 谢18参考文献18附录19数字图像压缩编码

3、方法的研究(电子信息工程学系 指导教师:XXX)摘要:随着各种技术地不断发展,数字图像的数据压缩在数字图像传输中发挥着关键性的作用。将数字图像编码分为有损压缩和无损压缩两类。设计以matlab为仿真工具,利用图像信息源不均匀的概率分布来去掉图像的冗余,并用变长编码来对信源进行无损压缩编码。而利用数字图像在空间和时间上的相关性,运用某种变换去掉其相关性对信源进行有损压缩编码。利用DCT变换和huffman编码对图像的信源进行JEPG编码。同时为了将各种压缩方法运用于教学和锻炼编程能力,设计了以matlab为仿真工具的GUI界面。仿真结果表明,采用以上方法可以很好的研究和比较各种压缩方法。关键词:

4、数字图像; 压缩编码; 有损压缩; 无损压缩; JPEG压缩Abstract: With the development of various technologies, data compression plays a key role in digital image transmission. Digital image coding has two types: lossy compression and lossless compression. MATLAB is used as simulation tool, next image sources uneven probabil

5、ity distribution is used to remove the image redundancy and variable length coding is used to make the source achieve a lossless compression coding. According to the correlation between space and time of digital image, A certain transformation is used to remove the relevance of signal source thus th

6、e lossy coding is carried on. DCT transformation and Huffman coding is used to have JEPG coding with image source. Also, to apply all sorts of compression methods to teaching and exercise programming ability, matlab simulation tool is used to design a GUI. Simulation results show that using the meth

7、ods above can help study and compare various compression methods very well.字典 - 查看字典详细内容朗读显示对应的拉丁字符的拼音字典 - 查看字典详细内容朗读显示对应的拉丁字符的拼音字典 - 查看字典详细内容Keywords: digital image; compression coding; lossy image compression; JPEG Compression; wavelet image coding1绪论1.1 引言随着各种现代化技术的不断发展,图像信息已变为众多领域重要的处理对象,怎样充分利用信

8、道和具有一定带宽的信道下传输有用的图像信息的问题就出现了。对原始图像进行存储、记录和传输为其提供了可能,那么必须对数字图像的信息进行有效的压缩。因此,对图像压缩技术的研究和实现在数字图像传输中发挥着关键性的作用。1.2 数字图像压缩编码的分类为了方便对各种压缩方法的研究和比较,根据图像的信息在编码中是否有损失将数字图像编码分为有损压缩和无损压缩1。分类如图1所示:图1 图像压缩的分类图无损压缩就是主要是利用信源概率不相等的特性来去掉图像的冗余以及用不等长的码字来对信源进行编码。有些失真是人眼所不能察觉的,有损压缩就是利用人眼的这一视觉特性来进行压缩的。有损压缩是运用某种变换去掉数字图像在空间和

9、时间上的相关性对信源进行编码。为了解决如何从各种图像压缩算法中选择正确的算法处理实际的压缩问题,就必须对各种压缩方法的性能进行评价。1.3 图像压缩技术的性能指标这里主要用均方根误差和压缩比的大小来比较各种压缩编码方法的性能。也可用编码效率、平均码字长度、冗余度。(1)均方根误差erms主要是通过计算原始图像数据和解码后图像数据之间的差异,来体现经压缩编码方法的准确性,其计算公式如(1)如下: (1)其中,和分别表示原始图像和解码后的图像。(i=1,2,3,4.,N,j=1,2,3,4.,M)(2)压缩比cr:其计算式如公式(2)所示: (2)用其大小来反映压缩编码方法的压缩效果。其中,(压缩

10、后图像数据大小)小于(压缩后图像数据大小)的压缩编码方法才是有意义的,则cr要小于1。1.4 研究内容这里主要是对有损压缩和无损压缩编码方法进行分类研究。并设计以matlab为仿真工具,利用信源概率不相等的特性来去掉图像的冗余以及用不等长的码字来对信源进行无损压缩编码。而运用某种变换去掉数字图像在空间和时间上的相关性对信源进行有损压缩编码。利用DCT变换和huffman编码对图像进行JEPG编码。在仿真软件matlab中用相应的函数计算均方根误差erms、原始图像数据大小和压缩后数据大小,通过利用公式计算cr以便衡量压缩编码的性能。将各种数据绘制成表格加以比较,总结出不同图像所适合的压缩编码。

11、为了将各种压缩编码的方法应用于教学和锻炼自己对GUI的认识及编程能力,又创建了一个GUI界面将各种压缩编码的实现集合此。2 无损压缩编码的研究和实现 2.1 行程编码RLE(Run Length Encoding)行程是指具有相同灰度值的像素序列,其编码思想就是去除掉像素空间冗余,即用行程的行程和灰度的长度来替换行程本身2。例如:编码前:hhhhhbbmmmmmm 编码后:h5b2m6行程编码如图2所示:图2 行程编码系统图对于行程编码的研究,这里选用大小为像素、灰度级为256的cameraman图像,对其进行行程编码来实现图像压缩的目的。其中采用RLEncode函数对图像进行压缩,而用RLE

12、decode函数对压缩图像进行复原。显示原始图像和解压后的图像、用size函数计算的原始图像数据和压缩后数据大小、均方根误差erms,通过利用公式计算cr。对大小为像素、灰度级为256的cameraman图像进行行程编解码结果如图3所示,在其编码的程序中,添加display(e)语句使其显示cameraman图像的压缩编码,可得部分编码如下:(1 150),(1 153),(1 152),(1 151),(1 150),(1 151),(1 156),(1 154),(2 151),(1 149),(1 154),(1 152),(1 153),(1 152),(3 149),(2 151)此

13、处是对灰度图进行行程编码的,由于灰度图的灰度值不像二值化图像只有0和1,而cameraman图像没有白色的部分就没有灰度值为0,则其编码中含除了1以外的灰度值。其编解码结果如图3所示图3 cameraman图像进行行程编码结果图由图3可得:=112224,=65536,则压缩比cr=1.7127。对大小为像素、灰度级为256的cameraman图像先进行黑白二值化再行程编解码结果如图4所示,在其编码的程序中,添加display(e)语句使其显示二值化cameraman的压缩编码,可得部分编码如下: (1 158),( 0 8),( 1 2),( 0 1),(1 1),( 0 3),(1 1),

14、(0 1),( 1 2),( 0 1),( 1 40),( 0 1),( 1 14),( 0 1),( 1 12),( 0 1)此处是将灰度图转换为黑白二值化图像再进行行程编码的,由于黑白二值化的灰度值只有0和1,则其编码只含有0和1的灰度值。图4 黑白二值化cameraman图像进行行程编码结果图由图4可得:=6802,=65536,则压缩比cr=0.10379。为了方便比较两种行程编码,将以上两种结果的数据列在表1中,表1如下所示:表1 对灰度图像和二值化图像进行行程编码结果的数据比较表图像原始图像数据大小压缩后数据大小均方根误差erms压缩比cr灰度图6553611222401.7124

15、二值化图像65536680200.10379由表1可以明显看出:均方根误差erms =0,则行程编码是一种无损压缩编码。对灰度图像进行行程编码后图像的大小与原始图像大小相比,其需要更大的存储空间,没不到压缩图像的目的。而对二值化图像进行行程编码后图像的大小比原始图像小将近10倍,这样更有利于图像的存储和传输。则说明行程编码更适合于二值化图像和那些连续出现灰度级相同的图像。2.2 哈弗曼编码(Huffman)哈弗曼(Huffman)编码步骤可概括为大到小排列、相加(到只有一个信源符号为止)、赋码字、得huffman编码,以上均是对于信源符号概率而言的。Huffman编码,这里选用大小为像素、灰度

16、级为256的coin图像,对其进行huffman编码来实现图像压缩的目的。其中采用huffncode函数对图像进行压缩,而用huffdecode函数对压缩图像进行复原,显示原始图像和解压后的图像、用size函数计算的原始图像数据和压缩后数据大小、均方根误差erms,通过利用公式计算cr。对大小为像素、灰度级为256的boat图像进行huffman编解码可得5个概率最大的灰度值及其概率大小:M1(145,0.0213), M2(144,0.0209), M3(147,0.0208), M4(146,0.0207), M5(149,0.0195),用其对huffman编码的步骤进行说明,其编码过程

17、如图5所示:图5 huffman编码过程图由图5可得:经过huffman编码后信源M1、M2、M3、M4、M5的码字分别为:01、10、00、111、011。由经过编码的码字可得到huffman编码的特点:用短的码字对概率大的信源进行编码,而用较长的码字对概率小的信源进行编码。其运行结果如图6所示:图6 对boat图像进行huffman编解码结果图由图6可得:=58986,=65536,则压缩比cr=0.90005。由huffman编解码的运行结果数据可得表2如下所示:表2 对boat图像进行huffman编解码结果数据表编码原始图像数据大小压缩后数据大小均方根误差erms=压缩比crHuff

18、man编码655365898600.90005由上表可得:均方根误差erms =0,则huffman编码为无损压缩编码。对boat进行huffman编码后的图像大小与原始图像差不多,其压缩比接近于1,则huffman编码对图像没有很好的压缩效果。如信源M1、M2、M3、M4、M5经过huffman编码的码字分别为:01、10、00、111、011,是由近似的整数来对其进行编码的,没有达到预期的效果。2.3 线性预测编码(DPCM,Different Pulse Code Modulation)差值脉冲编码调制(Different Pulse Code Modulation),即线性预测编码(D

19、PCM)是对图像的预测误差进行编码的一种无损压缩编码。预测误差是当前信号的实际值和根据前面的信号对当前信号进行预测得到的预测值的之差。其编解码系统如图7所示:图7 线性预测编码编解码系统图线性预测编码,这里选用大小为像素、灰度级为256的yun图像,对其进行行程编码来实现图像压缩的目的。其中采用LPCencode函数对图像进行压缩,而用LPCdecode函数对压缩图像进行复原,用size函数计算的原始图像数据和压缩后数据大小、均方根误差erms并在静态文本框中显示出来。由于线性预测编码是对图像的预测误差进行编码的一种无损压缩编码,也通过显示原始图像和预测误差的直方图,来反映经过预测编码去除图像

20、冗余的情况。对大小为像素、灰度级为256的yun图像进行DPCM编码的运行结果如图8、9所示:图8 对circuit图像进行DPCM编解码结果图图9 原始图像和预测误差直方图由图8可得:均方根误差erms =0,则线性预测编码是对图像的预测误差进行编码的一种无损压缩编码。由图9可得:预测误差的概率分布在零处的峰值很大,则线性预测编码通过预测和差分消除了大量像素间的冗余。将以上几种无损压缩编码方法运行结果数据汇总在表3中进行比较,表3如下所示:表3 无损压缩编码比较表图像编码原始数据大小压缩后数据大小均方根误差erms压缩比cr灰度图RLERLEHuffmanDPCM6553611222401.

21、7124二值化图像灰度图灰度图655366553616384680258986163840000.103790.90005由于线性预测编码是对预测误差进行编码的,其要与RLE和huffman编码比较得通过预测误差直方图的概率分布来进行。由表3可得:要对黑白二值化图像进行编码,最好选择RLE编码。而对于灰度图,进行RLE编码后图像数据(112224)比原始数据(65536)大很多;进行huffman编码后的图像大小与原始图像差不多,均没达到好的压缩效果;进行线性预测编码其预测误差的概率分布在零处的峰值很大,说明消去了很多的冗余。因此,灰度图像要进行无损压缩编码,最好的选择是进行线性预测编码。3

22、有损压缩编码研究和实现有损压缩主要是对变换编码进行研究的。变换编码是一种基于某种变换的编码方法,其只对变换域上有用的低频信息进行量化、编码、传输,而丢弃那些没用的高频分量。变换编码是先将图像分割为个子图像再分别进行变换、量化和编码处理,而非一次性对图像进行变换和编码。其编解码系统如图10所示:图10 变换编码编解码系统图3.1 基于DCT的图像压缩编码由于在空间域里进行DCT变换编码比在变换域里较复杂,因此DCT变换编码选择在变换域里进行。经过DCT变换后信号的能量积聚到少量的系数上,使其图像的相关性下降了和抗干扰能力增加了,更利于压缩图像的传输。因而,被图像压缩领域广泛的运用。关于基于DCT

23、的图像压缩编码的实现,这里选用大小为像素、灰度级为256的lena图像,对其进行DCT变换来实现图像压缩的目的。编写matlab程序时,先用blkproc和dctmtx(8) 函数对图像进行分割为 个大小为的子图像进行DCT,则每一个子图像中均有64个的傅里叶系数。再量化,用im2col函数将的图像块排列成向量,根据设置的压缩比cr确定要变零的系数个数snum并将最小的snum个变化系数设置为0。接着用col2im函数将向量重新排列成图像块以便图像的复原,最后用blkproc和dctmtx(8) 函数对新的图像块进行逆DCT变换来恢复图像和计算均方根误差erms来体现DCT的信息集中能力。其编

24、解码系统如图11所示:图11 DCT变换编解码系统图设置压缩比cr=0.5,即对大小为像素、灰度级为256的lena图像进行2:1的DCT压缩,截取一子图像8,8数据分析其编码,截取的数据如下:由上可得:全部负数是当中最小的32个变换系数。经过量化编码后的数据如下:由上可得:量化编码将64个变换系数中最小的32个变换系数变0,而保留32个比较大的变换系数。其运行结果如图12所示:图12 进行压缩比为0.5的DCT变换编解码运行结果图设置压缩比cr=0.125,即对大小为像素、灰度级为256的lena图像进行8:1的DCT压缩,截取一子图像8,8数据分析其编码,截取的数据如下:由上可得:5.08

25、38,0.0230,0.0018,0.0453,0.0222,0.0019,0.0015,0.0019是8个比较大的变换系数。经过量化编码的数据如下:由上可得:量化编码将64个变换系数中最小的56个变换系数变0,而保留8个比较大的变换系数。其运行结果如图13所示:图13 进行压缩比为0.125的DCT变换编解码运行结果图3.2 基于哈达玛变换(HT)的图像压缩编码哈达玛变换矩阵有三个优点3: 只含+1和-1; 任意两行或两列对应元素相乘后相加为0,即正交; 变换核矩阵使高阶矩阵可通过低阶矩阵来获得。关于基于哈达玛变换的图像压缩编码的实现,在matlab7.0中没有产生哈达玛矩阵的函数hadam

26、ard,因此就得编写一个产生哈达玛矩阵的函数hadamard。这里选用大小为像素、灰度级为256的lena图像,对其进行哈达玛变换来实现图像压缩的目的。编写matlab程序时,先用blkproc和hadamard 函数对图像进行分割为 个大小为的子图像进行哈达玛变换,则每一个子图像中均有64个的傅里叶系数,再用im2col函数将的图像块排列成向量,根据设置的压缩比cr确定要变零的系数个数snum并将最小的snum个变化系数设置为0,接着要col2im函数将向量重新排列成图像块以便图像的复原,最后用blkproc和hadamard 函数对新的图像块进行逆哈达玛变换来恢复图像和计算均方根误差erm

27、s来体现哈达玛变换的信息集中能力。其编解码系统如图14所示:图14 Hadamard变换编解码系统图设置压缩比cr=0.5对大小为像素、灰度级为256的lenan图像进行2:1的哈达玛变换压缩,截取一子图像8,8数据分析其编码,截取的数据如下:经过量化编码的数据如下:由上可得:经过量化编码将64个变换系数中最小的32个变换系数变0,而保留32个比较大的变换系数。其运行结果如图15示:图15 进行压缩比为0.5的哈达玛变换编解码运行结果图设置压缩比cr=0.125对大小为像素、灰度级为256的lena图像进行8:1的哈达玛变换压缩,截取一子图像8,8数据分析其编码,截取的数据如下:经过量化编码的

28、数据如下:由上可得:经过量化编码将64个变换系数中最小的56个变换系数变0,而保留8个比较大的变换系数。其运行结果如图16所示:图16 进行压缩比为0.125的哈达玛变换编解码运行结果图为了方便比较以上两种变换编码集中能量的能力,两种变换均是对大小为像素、灰度级为256的lena图像进行处理。将以上两种变换编码结果制作为一张表,表4如下所示:表4 三种变换编码结果汇总表压缩比cr=变换编码原始图像数据大小:压缩后数据大小:均方根误差erms=0.50.5基于DCT的变换编码65536327680.047319基于HT的变换编码65536327680.0452090.1250.125基于DCT的

29、变换编码基于HT的变换编码6553665536819281920.0550190.055239由表4可得:在压缩比相同的情况下(即丢弃的系数个数相同),DCT的均方根误差erms相对比较小,也就是DCT比HT有更强的信息集中能力。在压缩比为0.5的情况下,两种变换的均方根误差均比压缩比为0.125的小,也就是压缩比越大其集中信息的能力越强。这是因为图像的有用信息低频信息大多在变换域的左上角,变换编码只对该区域的变换进行量化、编码、传输,而丢弃那些没用的高频分量。3.3 小波编码小波变换利用对信号的局域的性质进行分析来提取信号的有用信息,这样可以解决一些傅里叶(Fourier)变换不能解决的问题

30、4。例如:傅里叶(Fourier)变换的局限性。这里采用直接阈值的小波编码法,其是省略小于某一阈值的系数而留下那些有大能量的系数,以达到压缩图像的效果。有多种方法可以得到阈值,既可以通过直接赋值,也可以通过函数来产生。这里用wdcbm2函数来求阈值。其编解码系统如图17所示:图17 直接阈值编码法的编解码系统图在这种方法中用imnoise函数对图像信号进行加噪,用wfilters函数得到haar滤波器的分解和重构的滤波器,用wavedec2函数和得到的分解滤波器对加噪信号进行2层二维的小波分解并得到分解结构c,s,用wdcbm2函数得到阈值和保留的系数,用wdencmp对图像进行重构。用siz

31、e函数计算的原始图像数据和压缩后数据大小、均方根误差erms,通过利用公式计算cr。这里是用不同的阈值对各个子图像的小波系数进行舍取处理。对lena图像(大小为像素、灰度级为256)进行2层二维小波编解码结果如图18所示:图18 直接阈值的小波编码法运行结果图由图18可得:=218,=65536,则压缩比cr=0.00332641,由此数据可得小波编码有很大的压缩比。将基于DCT的变换编码与小波编码进行比较总结出小波编码的优点,表5如下所示:表5 FFT和小波编码运行结果比较表编码原始图像数据大小: 压缩后数据大小: 均方根误erms=压缩比cr=基于DCT的变换编码65536327680.0

32、473190.5基于DCT的变换编码6553681920.0550190.125小波编码65536613.31310.00332641由上表可得:与DCT相比,小波编码有更高的压缩比,因为小波编码去除了所有的相关性,这是DCT所不能达到的。虽然小波编码的均方根误差比DCT高很多,但是小波编码是去除那些能量比较小的系数,而将那些高能量的系数保留下来,小能量的系数对图像恢复没有多大的影响。4 JPEG部分压缩算法的研究和实现融合了DCT,Huffman压缩编码方法和有高压缩比cr的JPEG是一种有损/无损压缩方法5,其是联合图像专家组(Joint Photographic Expert Group

33、)的简称6。其编解码方框图如图19所示:图19 JPEG编解码方框图这里从【open】中选择people图像(大小为像素、灰度级为256)对其进行JEPG编解码。编写matlab程序时,除了用到DCT变换和huffman编码所有的函数,如:blkproc、dct2(x)、size、idct2(x)、DCHuffmanEncoding、round等函数,还用到了ZigZag函数来分别对DC系数和AC系数扫描和编码以及矩阵系数替换等基本matlab编程语句。最后用set和num2str函数将原始图像数据和压缩后数据大小、均方根误差erms在静态文本框中显示出来,并通过利用公式计算cr。对大小为像素

34、、灰度级为256的people图像进行JEPG编解码结果如图20所示:图20 JEPG编解码结果图由图20可得:=108,=65536,则压缩比cr=0.001647,由此数据可得JPEG编码和小波编码一样都有很高的压缩比。将以上DCT变换编码、huffman编码、JEPG编码的结果数据汇制成表6,表6如下所示:表6 DCT、huffman、JEPG编码结果表编码 原始图像大小: 压缩后图像的大小:均方根误erms=压缩比cr=基于DCT的变换编码65536655360.0473190.5基于DCT的变换编码65536655360.0550190.125Huffman编码JEPG编码65536

35、655365898610809.60480.900050.001647由表6可得:DCT变换编码是一种具有高信息集中能力的编码,huffman编码是一种无损压缩,这里采用JEPG编码正是集合这两种编码的优点而具有较高的压缩比。5 总体设计在matlab环境中,GUI是一种图形窗口,其包含了许多种的对象并提供了集成了GUI所有支持控件的界面设计工具集GUIE,成就了GUI方便高效的开发。创建一个图形用户界面GUI将各种压缩编码方法结合在一起的具体步骤如下: 启动GUIE:在打开matlab7.0后,点击【file】菜单下的子菜单【new】并选择【GUI】项目,打开如图21的界面。图21 GUI模

36、板设置界面图在窗口GUIE Quick Start中,点击OK就可以选择一个空白的模板,将其保存为GUI.fig同时生成了编写功能所要用到M文件。 在界面设计工具集GUIE中选择所需的控件布置界面并设置属性,设计好界面如图22所示:图22 最初布置图在该界面中,包含有10个静态文本和两个axes窗口。 将各种编码方法均设置在菜单栏上,可以使界面不会那么的凌乱,则打开Menu Editer窗口设计两个菜单项File、Operations,其中File包含的子菜单有Open和Exit,Operations包含的子菜单有RLE、huffman、DPCM、DCT、FFT、hadamard、wavlet

37、、JEPG。菜单项的Callback均设为GUI0(File_Callback,gcbo,guidata(gcbo),菜单项的label和Tag均分别设为File、Operations、RLE、huffman、DPCM、DCT、FFT、hadamard、wavlet、JEPG。菜单栏的整体排版如图23所示: 图23 菜单栏安排图运行界面GUIE,可得如图24所示:图24 最终布置图 在M文件中编写对应功能代码。其中Open实现的功能是可以打开在根目录下的任何的图片(如图25所示:),Exit用命令close(GUI0)来关闭运行中的界面GUI。Operations下的子菜单RLE、huffma

38、n、DPCM、DCT、FFT、hadamard、wavlet、JEPG对应用来实现行程编码、线性预测编码、变换编码、小波编码、JEPG编码。图25 用Open打开任何图片图在编写这些程序时要注意用handles来进行数据间的传递。要将计算好的均方根误差erms、压缩比cr、原始图像和压缩后图像的大小在静态文本中显示出来时,除了用set命令,还得用命令num2str将它们转换为字符形式才能在静态文本显示。在编写程序时必须得注意这两个问题。 运行以编写好代码的GUI界面,选择【Open】下大小为像素、灰度级为256的coin图像和【Operations】的【huffman】选项,进行huffman

39、编码可得如26图结果:图26 实现huffman编码功能图按照以上步骤创建好的GUI界面实现的功能有:选择【Open】下的任何一张图像;选择Operations下的子菜单中的任何一编码计算并显示原始图像和解码后图像的大小、均方根误差、压缩比cr以及解码后的图像;关闭运行的界面。6 结论随着各种现代化技术地不断发展,数字图像的数据压缩在数字图像传输中发挥着关键性的作用。为了方便对各种压缩方法的进行研究、实现和比较,根据图像的信息在编码中是否有损失将数字图像编码分为有损压缩和无损压缩。设计以matlab为仿真工具,利用信源概率不相等的特性来去掉图像的冗余以及用不等长的码字来对信源进行无损压缩编码。

40、而运用某种变换去掉数字图像在空间和时间上的相关性对信源进行有损压缩编码。利用DCT变换和huffman编码对图像的信源进行JEPG编码。为了更好地研究和实现各种压缩方法并将这些方法用于教学,又设计了一个GUI界面,将全部的压缩编码的方法结合在一起。在设计GUI时,要特别注意用handles来进行数据间的传递和静态文本显示的细节。致 谢:非常感谢黄剑航老师对我的悉心指导,使我能够顺利地完成毕业设计。从论文的选题、指导到程序的讲解以及最后设计的完成,黄剑航老师都非常有耐心地对我们进行指导。这次毕业设计是理论与实践并行的,在黄剑航老师悉心指导之下让我深深体会到把书本上的理论应用到实践中去的重要性。只

41、有待理论和实践相结合时,所学来的知识才不是纸上谈兵。同时,我也要感谢那些跟我一起走过风雨的同学们,因为有你们的相伴,我才有多彩的大学生活。参考文献:1 何东健数字图像处理M北京:西安电子科技出版社,20082 姚敏数字图像处理M北京:机械工业出版社,20083 张德丰详解MATLAB数字图像处理M北京:电子工业出版社,20104 贾永红数字图像处理M武汉:武汉大学出版社,20105 王成优JPEG图像压缩编码及其MATLAB仿真实现J电子测量技术,2007,30(1):135-1376 孙学岩,叶海建,韩玉坤数字图像压缩原理及常用压缩编码方法J农机化研究,2005,3(5):130-132附录

42、用GUI界面来实现DCT变换编码的程序:function DCT_Callback(hObject, eventdata, handles)% hObject handle to DCT (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)clcI=handles.current_data;I1=double(I)/255;%图像为256级灰度图像,对图像进行归一化操作T=dc

43、tmtx(8);%产生8*8的DCT矩阵dctcoe=blkproc(I1,8 8,P1*x*P2,T,T);%将图像分割为8*8的子图像进行DCTcoevar=im2col(dctcoe,8 8,distinct);%将变换系数矩阵重新排列coe=coevar;y,ind=sort(coevar);m,n=size(coevar);%根据压缩比确定要变0的系数个数%舍去不重要的系数cr=0.5;snum=64-64*cr;for i=1:n coe(ind(1:snum),i)=0;%将最小的snum个变换系数清0endb2=col2im(coe,8 8,256 256,distinct);

44、%重新排列系数矩阵I2=blkproc(b2,8 8,P1*x*P2,T,T);%对截取后的变换系数进行DCT逆变换axes(handles.axes2);imshow(I2);%计算均方根误差ermse=double(I1)-double(I2);m,n=size(e);erms=sqrt(sum(e(:).2)/(m*n)c = num2str(erms); M=size(I);M1= num2str(M); N=size(I2); N1= num2str(N); %显示原始图像数据大小和压缩后数据大小,均方根误差ermsset(handles.text8,String,M1); set(handles.text10,String,N1);set(handles.text6,String,c); guidata(hObject, handles);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号