导航:首页 > 文件处理 > 图像的分形压缩编码

图像的分形压缩编码

发布时间:2023-01-15 01:25:26

① 图像压缩编码论文

数字图像压缩技术的研究及进展

摘要:数字图像压缩技术对于数字图像信息在网络上实现快速传输和实时处理具有重要的意义。本文介绍了当前几种最为重要的图像压缩算法:JPEG、JPEG2000、分形图像压缩和小波变换图像压缩,总结了它们的优缺点及发展前景。然后简介了任意形状可视对象编码算法的研究现状,并指出此算法是一种产生高压缩比的图像压缩算法。关键词:JPEG;JPEG2000;分形图像压缩;小波变换;任意形状可视对象编码一 引 言 随着多媒体技术和通讯技术的不断发展,多媒体娱乐、信息高速公路等不断对信息数据的存储和传输提出了更高的要求,也给现有的有限带宽以严峻的考验,特别是具有庞大数据量的数字图像通信,更难以传输和存储,极大地制约了图像通信的发展,因此图像压缩技术受到了越来越多的关注。图像压缩的目的就是把原来较大的图像用尽量少的字节表示和传输,并且要求复原图像有较好的质量。利用图像压缩,可以减轻图像存储和传输的负担,使图像在网络上实现快速传输和实时处理。 图像压缩编码技术可以追溯到1948年提出的电视信号数字化,到今天已经有50多年的历史了[1]。在此期间出现了很多种图像压缩编码方法,特别是到了80年代后期以后,由于小波变换理论,分形理论,人工神经网络理论,视觉仿真理论的建立,图像压缩技术得到了前所未有的发展,其中分形图像压缩和小波图像压缩是当前研究的热点。本文对当前最为广泛使用的图像压缩算法进行综述,讨论了它们的优缺点以及发展前景。二 JPEG压缩 负责开发静止图像压缩标准的“联合图片专家组”(Joint Photographic Expert Group,简称JPEG),于1989年1月形成了基于自适应DCT的JPEG技术规范的第一个草案,其后多次修改,至1991年形成ISO10918国际标准草案,并在一年后成为国际标准,简称JPEG标准。1.JPEG压缩原理及特点 JPEG算法中首先对图像进行分块处理,一般分成互不重叠的 大小的块,再对每一块进行二维离散余弦变换(DCT)。变换后的系数基本不相关,且系数矩阵的能量集中在低频区,根据量化表进行量化,量化的结果保留了低频部分的系数,去掉了高频部分的系数。量化后的系数按zigzag扫描重新组织,然后进行哈夫曼编码。JPEG的特点优点:(1)形成了国际标准;(2)具有中端和高端比特率上的良好图像质量。缺点:(1)由于对图像进行分块,在高压缩比时产生严重的方块效应;(2)系数进行量化,是有损压缩;(3)压缩比不高,小于50。 JPEG压缩图像出现方块效应的原因是:一般情况下图像信号是高度非平稳的,很难用Gauss过程来刻画,并且图像中的一些突变结构例如边缘信息远比图像平稳性重要,用余弦基作图像信号的非线性逼近其结果不是最优的。2. JPEG压缩的研究状况及其前景 针对JPEG在高压缩比情况下,产生方块效应,解压图像较差,近年来提出了不少改进方法,最有效的是下面的两种方法:(1)DCT零树编码 DCT零树编码把 DCT块中的系数组成log2N个子带,然后用零树编码方案进行编码。在相同压缩比的情况下,其PSNR的值比 EZW高。但在高压缩比的情况下,方块效应仍是DCT零树编码的致命弱点。(2)层式DCT零树编码 此算法对图像作 的DCT变换,将低频 块集中起来,做 反DCT变换;对新得到的图像做相同变换,如此下去,直到满足要求为止。然后对层式DCT变换及零树排列过的系数进行零树编码。 JPEG压缩的一个最大问题就是在高压缩比时产生严重的方块效应,因此在今后的研究中,应重点解决 DCT变换产生的方块效应,同时考虑与人眼视觉特性相结合进行压缩。三 JEPG2000压缩 JPEG2000是由ISO/IEC JTCISC29标准化小组负责制定的全新静止图像压缩标准。一个最大改进是它采用小波变换代替了余弦变换。2000年3月的东京会议,确定了彩色静态图像的新一代编码方式—JPEG2000图像压缩标准的编码算法。1.JPEG2000压缩原理及特点 JPEG2000编解码系统的编码器和解码器的框图如图1所示。编码过程主要分为以下几个过程:预处理、核心处理和位流组织。预处理部分包括对图像分片、直流电平(DC)位移和分量变换。核心处理部分由离散小波变换、量化和熵编码组成。位流组织部分则包括区域划分、码块、层和包的组织。 JPEG2000格式的图像压缩比,可在现在的JPEG基础上再提高10%~30%,而且压缩后的图像显得更加细腻平滑。对于目前的JPEG标准,在同一个压缩码流中不能同时提供有损和无损压缩,而在JPEG2000系统中,通过选择参数,能够对图像进行有损和无损压缩。现在网络上的JPEG图像下载时是按“块”传输的,而JPEG2000格式的图像支持渐进传输,这使用户不必接收整个图像的压缩码流。由于JPEG2000采用小波技术,可随机获取某些感兴趣的图像区域(ROI)的压缩码流,对压缩的图像数据进行传输、滤波等操作。2.JPEG2000压缩的前景 JPEG2000标准适用于各种图像的压缩编码。其应用领域将包括Internet、传真、打印、遥感、移动通信、医疗、数字图书馆和电子商务等。JPEG2000图像压缩标准将成为21世纪的主流静态图像压缩标准。四 小波变换图像压缩1.小波变换图像压缩原理小波变换用于图像编码的基本思想就是把图像根据Mallat塔式快速小波变换算法进行多分辨率分解。其具体过程为:首先对图像进行多级小波分解,然后对每层的小波系数进行量化,再对量化后的系数进行编码。小波图像压缩是当前图像压缩的热点之一,已经形成了基于小波变换的国际压缩标准,如MPEG-4标准,及如上所述的JPEG2000标准 。2.小波变换图像压缩的发展现状及前景 目前3个最高等级的小波图像编码分别是嵌入式小波零树图像编码(EZW),分层树中分配样本图像编码(SPIHT)和可扩展图像压缩编码(EBCOT)。(1)EZW编码器 1993年,Shapiro引入了小波“零树”的概念,通过定义POS、NEG、IZ和ZTR四种符号进行空间小波树递归编码,有效地剔除了对高频系数的编码,极大地提高了小波系数的编码效率。此算法采用渐进式量化和嵌入式编码模式,算法复杂度低。EZW算法打破了信息处理领域长期笃信的准则:高效的压缩编码器必须通过高复杂度的算法才能获得,因此EZW编码器在数据压缩史上具有里程碑意义。(2)SPIHT编码器 由Said和Pearlman提出的分层小波树集合分割算法(SPIHT)则利用空间树分层分割方法,有效地减小了比特面上编码符号集的规模。同EZW相比,SPIHT算法构造了两种不同类型的空间零树,更好地利用了小波系数的幅值衰减规律。同EZW编码器一样,SPIHT编码器的算法复杂度低,产生的也是嵌入式比特流,但编码器的性能较EZW有很大的提高。(3)EBCOT编码器优化截断点的嵌入块编码方法(EBCOT)首先将小波分解的每个子带分成一个个相对独立的码块,然后使用优化的分层截断算法对这些码块进行编码,产生压缩码流,结果图像的压缩码流不仅具有SNR可扩展而且具有分辨率可扩展,还可以支持图像的随机存储。比较而言,EBCOT算法的复杂度较EZW和SPIHT有所提高,其压缩性能比SPIHT略有提高。
小波图像压缩被认为是当前最有发展前途的图像压缩算法之一。小波图像压缩的研究集中在对小波系数的编码问题上。在以后的工作中,应充分考虑人眼视觉特性,进一步提高压缩比,改善图像质量。并且考虑将小波变换与其他压缩方法相结合。例如与分形图像压缩相结合是当前的一个研究热点。
五 分形图像压缩 1988年,Barnsley通过实验证明分形图像压缩可以得到比经典图像编码技术高几个数量级的压缩比。1990年,Barnsley的学生A.E.Jacquin提出局部迭代函数系统理论后,使分形用于图像压缩在计算机上自动实现成为可能。1. 分形图像压缩的原理 分形压缩主要利用自相似的特点,通过迭代函数系统(Iterated Function System, IFS)实现。其理论基础是迭代函数系统定理和拼贴定理。 分形图像压缩把原始图像分割成若干个子图像,然后每一个子图像对应一个迭代函数,子图像以迭代函数存储,迭代函数越简单,压缩比也就越大。同样解码时只要调出每一个子图像对应的迭代函数反复迭代,就可以恢复出原来的子图像,从而得到原始图像。2.几种主要分形图像编码技术 随着分形图像压缩技术的发展,越来越多的算法被提出,基于分形的不同特征,可以分成以下几种主要的分形图像编码方法。(1)尺码编码方法 尺码编码方法是基于分形几何中利用小尺度度量不规则曲线长度的方法,类似于传统的亚取样和内插方法,其主要不同之处在于尺度编码方法中引入了分形的思想,尺度 随着图像各个组成部分复杂性的不同而改变。(2)迭代函数系统方法 迭代函数系统方法是目前研究最多、应用最广泛的一种分形压缩技术,它是一种人机交互的拼贴技术,它基于自然界图像中普遍存在的整体和局部自相关的特点,寻找这种自相关映射关系的表达式,即仿射变换,并通过存储比原图像数据量小的仿射系数,来达到压缩的目的。如果寻得的仿射变换简单而有效,那么迭代函数系统就可以达到极高的压缩比。(3)A-E-Jacquin的分形方案 A-E-Jacquin的分形方案是一种全自动的基于块的分形图像压缩方案,它也是一个寻找映射关系的过程,但寻找的对象域是将图像分割成块之后的局部与局部的关系。在此方案中还有一部分冗余度可以去除,而且其解码图像中存在着明显的方块效应。3.分形图像压缩的前景 虽然分形图像压缩在图像压缩领域还不占主导地位,但是分形图像压缩既考虑局部与局部,又考虑局部与整体的相关性,适合于自相似或自仿射的图像压缩,而自然界中存在大量的自相似或自仿射的几何形状,因此它的适用范围很广。六 其它压缩算法 除了以上几种常用的图像压缩方法以外,还有:NNT(数论变换)压缩、基于神经网络的压缩方法、Hibert扫描图像压缩方法、自适应多相子带压缩方法等,在此不作赘述。下面简单介绍近年来任意形状纹理编码的几种算法[10]~ [13]。(1)形状自适应DCT(SA-DCT)算法 SA-DCT把一个任意形状可视对象分成 的图像块,对每块进行DCT变换,它实现了一个类似于形状自适应Gilge DCT[10][11]变换的有效变换,但它比Gilge DCT变换的复杂度要低。可是,SA-DCT也有缺点,它把像素推到与矩形边框的一个侧边相平齐,因此一些空域相关性可能丢失,这样再进行列DCT变换,就有较大的失真了[11][14][15]。(2)Egger方法 Egger等人[16][17]提出了一个应用于任意形状对象的小波变换方案。在此方案中,首先将可视对象的行像素推到与边界框的右边界相平齐的位置,然后对每行的有用像素进行小波变换,接下来再进行另一方向的小波变换。此方案,充分利用了小波变换的局域特性。然而这一方案也有它的问题,例如可能引起重要的高频部分同边界部分合并,不能保证分布系数彼此之间有正确的相同相位,以及可能引起第二个方向小波分解的不连续等。(3)形状自适应离散小波变换(SA-DWT) Li等人提出了一种新颖的任意形状对象编码,SA-DWT编码[18]~[22]。这项技术包括SA-DWT和零树熵编码的扩展(ZTE),以及嵌入式小波编码(EZW)。SA-DWT的特点是:经过SA-DWT之后的系数个数,同原任意形状可视对象的像素个数相同;小波变换的空域相关性、区域属性以及子带之间的自相似性,在SA-DWT中都能很好表现出来;对于矩形区域,SA-DWT与传统的小波变换一样。SA-DWT编码技术的实现已经被新的多媒体编码标准MPEG-4的对于任意形状静态纹理的编码所采用。 在今后的工作中,可以充分地利用人类视觉系统对图像边缘部分较敏感的特性,尝试将图像中感兴趣的对象分割出来,对其边缘部分、内部纹理部分和对象之外的背景部分按不同的压缩比进行压缩,这样可以使压缩图像达到更大的压缩比,更加便于传输。七 总结 图像压缩技术研究了几十年,取得了很大的成绩,但还有许多不足,值得我们进一步研究。小波图像压缩和分形图像压缩是当前研究的热点,但二者也有各自的缺点,在今后工作中,应与人眼视觉特性相结合。总之,图像压缩是一个非常有发展前途的研究领域,这一领域的突破对于我们的信息生活和通信事业的发展具有深远的影响。

参考文献:[1] 田青. 图像压缩技术[J]. 警察技术, 2002, (1):30-31.[2] 张海燕, 王东木等. 图像压缩技术[J]. 系统仿真学报, 2002, 14(7):831-835.[3] 张宗平, 刘贵忠. 基于小波的视频图像压缩研究进展[J]. 电子学报, 2002, 30(6):883-889.
[4] 周宁, 汤晓军, 徐维朴. JPEG2000图像压缩标准及其关键算法[J]. 现代电子技术, 2002, (12):1-5.[5] 吴永辉, 俞建新. JPEG2000图像压缩算法概述及网络应用前景[J]. 计算机工程, 2003, 29(3):7-10.[6] J M Shaprio. Embedded image coding using zerotree of wavelet coefficients[J]. IEEE Trans. on Signal Processing, 1993, 41(12): 3445-3462.[7] A Said, W A Pearlman. A new fast and efficient image codec based on set partitioning in hierarchical trees[J]. IEEE Trans. on Circuits and Systems for Video Tech. 1996, 6(3): 243-250.[8] D Taubman. High performance scalable image compression with EBCOT[J]. IEEE Transactions on Image Processing, 2000, 9(7): 1158–1170.[9] 徐林静, 孟利民, 朱建军. 小波与分行在图像压缩中的比较及应用. 中国有线电视, 2003, 03/04:26-29.[10] M Gilge, T Engelhardt, R Mehlan. Coding of arbitrarily shaped image segments based on a generalized orthogonal transform[J]. Signal Processing: Image Commun., 1989, 1(10): 153–180.[11] T Sikora, B Makai. Shape-adaptive DCT for generic coding of video[J]. IEEE Trans. Circuits Syst. Video Technol., 1995, 5(1): 59–62.[12] T Sikora, S Bauer, B Makai. Efficiency of shape-adaptive 2-D transforms for coding of arbitrarily shaped image segments[J]. IEEE Trans. Circuits Syst. Video Technol., 1995, 5(3): 254–258.[13]邓家先 康耀红 编着 《信息论与编码》

② 图像数字化过程包括三个步骤

图像的数字化过程主要分采样、量化与编码三个步骤。
1、采样的实质就是要用多少点来描述一幅图像,采样结果质量的高低就是用前面所说的图像分辨率来衡量。
2、量化是指要使用多大范围的数值来表示图像采样之后的每一个点。量化的结果是图像能够容纳的颜色总数,它反映了采样的质量。
3、数字化后得到的图像数据量十分巨大,必须采用编码技术来压缩其信息量。在一定意义上讲,编码压缩技术是实现图像传输与储存的关键。已有许多成熟的编码算法应用于图像压缩。常见的有图像的预测编码、变换编码、分形编码、小波变换图像压缩编码等。

(2)图像的分形压缩编码扩展阅读:
图像数字化的对象:
1、模拟图像:空间上连续/不分割、信号值不分等级的图像。
2、数字图像:空间上被分割成离散像素,信号值分为有限个等级、用数码0和1表示的图像。

图像数字化的意义:
图像数字化是将模拟图像转换为数字图像。图像数字化是进行数字图像处理的前提。图像数字化必须以图像的电子化作为基础,把模拟图像转变成电子信号,随后才将其转换成数字图像信号。
图像数字化应用:遥感学
遥感科学与技术,所属一级学科为测绘科学与技术,是在测绘科学、空间科学、电子科学、地球科学、计算机科学以及其学科交叉渗透、相互融合的基础上发展起来的一门新兴交叉学科。
它利用非接触传感器来获取有关目标的时空信息,不仅着眼于解决传统目标的几何定位,更为重要的是对利用外层空间传感器获取的影像和非影像信息进行语义和非语义解译,提取客观世界中各种目标对象的几何与物理特征信息。

③ 请大家谈谈你对数据压缩原理的认识

数据压缩技术就是对原始数据进行数据编码或压缩编码。

目前常用的压缩编码有:冗余压缩法(无损压缩法、熵编码)和熵压缩法(有损压缩法)两类。

无损压缩是可逆的;有损压缩是不可逆的。
变长编码

使用长度可变的代码来对以不同频率出现的样本进行编码。

1·Huffman编码

Huffman编码又称最佳编码。

Huffman编码过程是:

*将信源符号按概率递减顺序排列;

*把两个最小的概率加起来,作为新符号的概率;

*重复上述两步骤,直到概率的和达到1为止;

*在每次合并消息时,将被合并的消息赋予1和0或赋予0和1;

*寻找从每一信源符号到概率为1的路经,记录下路经上的1和0;

*对每一符号写出从码树的根到终结点1、0序列。

例:对信源

[X1,X2,X3,X4,X5,X6]=[0.25,0.25,0.20,0.15,0.10,0.05]

进行Huffman编码。

其中:X1=01;X2=10;X3=11;X4=000;X5=0010;X6=0011。

2·算术编码

算术编码是一种二元编码。

这种编码方法是在不考虑信源统计的情况下,只要监视一小段时间内码字出现的频率,不管统计是平稳的或非平稳的,编码的码率总能趋近于信源熵值,每次迭代的编码算法只处理一个数据符号,并且只有算术运算。

对二进制编码来说,信源符号只有两个。在算术编码的初级阶段,可设一个大概率Pe和小概率Qe,然后对被编码比特流符号进行判断。

模型编码

模型编码是指采用模型的方法对传输的图像进行参数估测。

模型编码有:随机马尔可夫场和分形图像编码。

1·分形的概念

分形的含义是其组成部分以某种方式与整体相似的形(一类无规则、混乱而复杂),其局部与整体有相似性的体系,即:自相似性体系。

2·分形编码

*基本原理:分形的方法是把一幅数字图像,通过一些图像处理技术将原始图像分成一些子图像,然后在分形集中查找这样的子图像。分形集存储许多迭代函数,通过迭代函数的反复迭代,可以恢复原来的子图像。

分形编码压缩的步骤:

第一步:把图像划分为互不重叠的、任意大小的的D分区;

第二步:划定一些可以相互重叠的、比D分区大的R分区;

第三步:为每个D分区选定仿射变换表。

分形编码解压步骤:

首先从文件中读取D分区划分方式的信息和仿射变换系数等数据;

然后划定两个同样大小的缓冲区给D图像和R图像,并把R初始化到任一初始阶段;

根据仿射变换系数把其相应的R分区做仿射变换,并用变换后的数据取代该D分区的原有数据;

对D中所有的D分区都进行上述操作,全部完成后就形成一个新的D图像;

再把新D图像的内容拷贝到R中,把新R当作D,D当作R,重复操作(迭代)。

。分形编码的特点:

压缩比高,压缩后的文件容量与图像像素数无关,在压缩时时间长但解压缩速度快

④ 分形编码的分形编解码过程

分形编码压缩的步骤: 第一步:把图像划分为互不重叠的、任意大小的的D分区; 第二步:划定一些可以相互重叠的、比D分区大的R分区; 第三步:为每个D分区选定仿射变换表。 分形编码解压步骤: 首先从文件中读取D分区划分方式的信息和仿射变换系数等数据; 然后划定两个同样大小的缓冲区给D图像和R图像,并把R初始化到任一初始阶段; 根据仿射变换系数把其相应的R分区做仿射变换,并用变换后的数据取代该D分区的原有数据; 对D中所有的D分区都进行上述操作,全部完成后就形成一个新的D图像; 再把新D图像的内容拷贝到R中,把新R当作D,D当作R,重复操作(迭代)。

⑤ 数字图像压缩技术

⑥ 图像压缩的图像压缩原理

1.图像压缩的概念
减少表示数字图像时需要的数据量
2.图像压缩的基本原理
图像数据之所以能被压缩,就是因为数据中存在着冗余。图像数据的冗余主要表现为:图像中相邻像素间的相关性引起的空间冗余;图像序列中不同帧之间存在相关性引起的时间冗余;不同彩色平面或频谱带的相关性引起的频谱冗余。数据压缩的目的就是通过去除这些数据冗余来减少表示数据所需的比特数。由于图像数据量的庞大,在存储、传输、处理时非常困难,因此图像数据的压缩就显得非常重要。
信息时代带来了“信息爆炸”,使数据量大增,因此,无论传输或存储都需要对数据进行有效的压缩。在遥感技术中,各种航天探测器采用压缩编码技术,将获取的巨大信息送回地面。
图像压缩是数据压缩技术在数字图像上的应用,它的目的是减少图像数据中的冗余信息从而用更加高效的格式存储和传输数据。
3。图像压缩基本方法
图像压缩可以是有损数据压缩也可以是无损数据压缩。对于如绘制的技术图、图表或者漫画优先使用无损压缩,这是因为有损压缩方法,尤其是在低的位速条件下将会带来压缩失真。如医疗图像或者用于存档的扫描图像等这些有价值的内容的压缩也尽量选择无损压缩方法。有损方法非常适合于自然的图像,例如一些应用中图像的微小损失是可以接受的(有时是无法感知的),这样就可以大幅度地减小位速。
无损图像压缩方法有:
行程长度编码
熵编码法
如 LZW 这样的自适应字典算法
有损压缩方法有:
将色彩空间化减到图像中常用的颜色。所选择的颜色定义在压缩图像头的调色板中,图像中的每个像素都用调色板中颜色索引表示。这种方法可以与 抖动(en:dithering)一起使用以模糊颜色边界。
色度抽样,这利用了人眼对于亮度变化的敏感性远大于颜色变化,这样就可以将图像中的颜色信息减少一半甚至更多。
变换编码,这是最常用的方法。首先使用如离散余弦变换(DCT)或者小波变换这样的傅立叶相关变换,然后进行量化和用熵编码法压缩。
分形压缩(en:Fractal compression)。
4.图像压缩的主要目标就是在给定位速(bit-rate)或者压缩比下实现最好的图像质量。但是,还有一些其它的图像压缩机制的重要特性:
可扩展编码 (en:Scalability) 通常表示操作位流和文件产生的质量下降(没有解压缩和再压缩)。可扩展编码的其它一些叫法有 渐进编码(en:progressive coding)或者嵌入式位流(en:embedded bitstreams)。尽管具有不同的特性,在无损编码中也有可扩展编码,它通常是使用粗糙到精细像素扫描的格式。尤其是在下载时预览图像(如浏览器中)或者提供不同的图像质量访问时(如在数据库中)可扩展编码非常有用 有几种不同类型的可扩展性:
质量渐进(en:Quality progressive)或者层渐进(en:layer progressive):位流渐进更新重建的图像。
分辨率渐进(en:Resolution progressive):首先在低分辨率编码图像,然后编码与高分辨率之间的差别。
成分渐进(en:Component progressive):首先编码灰度数据,然后编码彩色数据。
感兴趣区域编码,图像某些部分的编码质量要高于其它部分,这种方法可以与可扩展编码组合在一起(首先编码这些部分,然后编码其它部分)。
元数据信息,压缩数据可以包含关于图像的信息用来分类、查询或者浏览图像。这些信息可以包括颜色、纹理统计信息、小预览图像以及作者和版权信息。
5.图像压缩目前的标准
经典的视频压缩算法已渐形成一系列的国际标准体系,如H.26x系列建议,H.320系列建议以及MPEG系列建议等。
6.图像压缩效果的评估
压缩方法的质量经常使用峰值信噪比来衡量,峰值信噪比用来表示图象有损压缩带来的噪声。但是,观察者的主观判断也认为是一个重要的、或许是最重要的衡量标准。

⑦ 求教高人,用MATLAB软件怎样的实现图像的分形压缩

分形编码的基本思路是:先采用一种合适的初级压缩方法对图像进行压缩,得到一组压缩编码,然后解码这组编码,得到一幅解压缩图像.对解码图像与原始图像求差值,得到一差值图像,然后对该差值图像进行适当的编码.对差值图像的编码与初级编码共同构成对原始图像的编码.这种方法需要选择合适的初级编码方法与差值编码方法,使得这两者相结合,可以得到一种综合性能较好的编码方法。

其定义如图。

%%%%%%%%%%%%%%

clear

tic

%Image1=imread('piccameraman.tif');

xianshi;

number=input('inputthenumber:');

Image1=suoxiao('piccameraman.tif',number);

[imagemimagen]=size(Image1);

Sr=4;Sd=8;

Rnum=(imagem/Sr)*(imagen/Sr);

Dnum=(imagem/Sd)*(imagen/Sd);

Image2=zeros(Dnum,Sr,Sr);

Image2=blkproc(Image1,[Sd/Sr,Sd/Sr],'mean(mean(x))');

%压缩image1为原来1/2

%

RBlocks=zeros(Rnum,Sr,Sr);

DBlocks=zeros(Dnum,Sd,Sd);

DBlocksRece=zeros(Dnum*8,Sr,Sr);

%%取R块,K记标号----------------------------------

fori=1:imagem/Sr

forj=1:imagen/Sr

k=(i-1)*imagen/Sr+j;

RBlocks(k,:,:)=Image1((i-1)*Sr+1:i*Sr,(j-1)*Sr+1:j*Sr);

end

end

%取R块,K记标号----------------------------------

fori=1:imagem/Sd

forj=1:imagen/Sd

k=(i-1)*imagen/Sd+j;

m=Sr;n=Sr;

DBlocksRece(k,:,:)=Image2((i-1)*Sr+1:i*Sr,(j-1)*Sr+1:j*Sr);

DBlocksRece(k+Dnum,:,:)=DBlocksRece(k,m:-1:1,:);%行上下翻转===(x轴对称)

DBlocksRece(k+2*Dnum,:,:)=DBlocksRece(k,:,n:-1:1);%列左右翻转====y轴对称

DBlocksRece(k+3*Dnum,:,:)=DBlocksRece(k,m:-1:1,n:-1:1);%先行翻,再列翻旋转180度

DBlocksRece(k+4*Dnum,:,:)=reshape(DBlocksRece(k,:,:),Sr,Sr)';%关于y=-x对称

A=reshape(DBlocksRece(k+3*Dnum,:,:),Sr,Sr)';

DBlocksRece(k+5*Dnum,:,:)=A(:,n:-1:1);%关于y=x对称

DBlocksRece(k+6*Dnum,:,:)=imrotate(reshape(DBlocksRece(k,:,:),Sr,Sr),90);%逆时针旋转90度

DBlocksRece(k+7*Dnum,:,:)=imrotate(reshape(DBlocksRece(k,:,:),Sr,Sr),270);%逆时针旋转270度

DBlocks(k,:,:)=Image1((i-1)*Sd+1:i*Sd,(j-1)*Sd+1:j*Sd);

end

end

RandDbest=zeros(Rnum,1)+256^3;

RandDbests=zeros(Rnum,1);

RandDbesto=zeros(Rnum,1);

RandDbestj=zeros(Rnum,1);

fori=1:Rnum

x=reshape(RBlocks(i,:,:),Sr*Sr,1);

meanx=mean(x);

forj=1:Dnum*8

y=reshape(DBlocksRece(j,:,:),Sr*Sr,1);

meany=mean(y);

s=(x-meanx)'*(y-meany)/((y-meany)'*(y-meany));%计算s

o=(meanx-s*meany);%计算o

c=(x-s*y-o)'*(x-s*y-o);%距离

if(RandDbest(i)>c)&(abs(s)<1)

RandDbest(i)=c;

RandDbests(i)=s;

RandDbesto(i)=o;

RandDbestj(i)=j;%可以找到对应变换和D块

end

end

end

%iterationlimit

toc

tic

m=8;%解码迭代次数

e=mean(mean(Image1));

Image3=e*ones(imagem,imagen);%解码初始图象

forL=1:m

Image4=blkproc(Image3,[Sd/Sr,Sd/Sr],'mean(mean(x))');

fori=1:imagem/Sr

forj=1:imagen/Sr

m=Sr;n=Sr;

k=(i-1)*imagen/Sr+j;

l=RandDbestj(k);

k1=mod(l-1,Dnum)+1;%第几个D

l1=(l-k1)/Dnum+1;%变换号

%R对应D在Image4的起始点

j1=mod(k1-1,imagen/Sd)+1;

i1=(k1-j1)/(imagen/Sd)+1;

%变换------------------------------------------------------------------------

DBlocksRece(k1,:,:)=Image4((i1-1)*Sr+1:i1*Sr,(j1-1)*Sr+1:j1*Sr);

switchl1-1

case0

DBlocksRece(l,:,:)=Image4((i1-1)*Sr+1:i1*Sr,(j1-1)*Sr+1:j1*Sr);

case1

DBlocksRece(l,:,:)=DBlocksRece(k1,m:-1:1,:);

case2

DBlocksRece(l,:,:)=DBlocksRece(k1,:,n:-1:1);

case3

DBlocksRece(l,:,:)=DBlocksRece(k1,m:-1:1,n:-1:1);

case4

DBlocksRece(l,:,:)=reshape(DBlocksRece(k1,:,:),Sr,Sr)';

case5

DBlocksRece(k1+3*Dnum,:,:)=DBlocksRece(k1,m:-1:1,n:-1:1);

A=reshape(DBlocksRece(k1+3*Dnum,:,:),Sr,Sr)';

DBlocksRece(l,:,:)=A(:,n:-1:1);

case6

DBlocksRece(l,:,:)=imrotate(reshape(DBlocksRece(k1,:,:),Sr,Sr),90);

case7

DBlocksRece(l,:,:)=imrotate(reshape(DBlocksRece(k1,:,:),Sr,Sr),270);

end

%变换结束--------------------------------------------------------------------

RBlocks(k,:,:)=RandDbests(k)*DBlocksRece(l,:,:)+RandDbesto(k);

%生成R---------------------------

Image3((i-1)*Sr+1:i*Sr,(j-1)*Sr+1:j*Sr)=reshape(RBlocks(k,:,:),Sr,Sr);%更新迭代图象

end

end

wucha=double(Image1)-Image3;%误差图

Ps1(L)=20*log10(255/(sqrt(mean(mean(wucha.^2)))))

PSNR=psnr(wucha)

figure

imshow(uint8(Image3))

end

toc

figure

wucha=uint8(wucha);

imshow(wucha)

figure

imshow(uint8(Image1)),title('原图');

save('sa.mat')

fangtu(wucha);%%%%分形主函数

%%%%%%%%%%%%%%%%%%%%%%%%%%%%

子函数:1:

functionb=suoxiao(filename,bili)

a=imread(filename);

a=double(a);

[m,n]=size(a);

i=1;

whilei=m/bili

j=1;

whilej=n/bili

k=mean(mean(a(bili*(i-1)+1:bili*(i-1)+bili,bili*(j-1)+1:bili*(j-1)+bili)));

b(i,j)=k;

j=j+1;

end

i=i+1;

end

%b=uint8(b);

size(b)

%imshow(b)

子函数2:

%clc

functionfangtu(a)

J=a;

%计算灰度图象的直方图数据,a为如象数组

L=256;%灰度级

Ps=zeros(L,1);%统计直方图结果数据

nk=zeros(L,1);

[row,col]=size(a);

n=row*col;%总像素个数

fori=1:row

forj=1:col

num=double(a(i,j))+1;%获取像素点灰度级

nk(num)=nk(num)+1;%统计nk

end

end

%计算直方图概率估计

fori=1:L

Ps(i)=nk(i)/n;

end

figure;

subplot(3,1,1);imshow(J),title('误差图');

subplot(3,1,2),plot(nk),title('直方图(nk)');

subplot(3,1,3),plot(Ps),title('直方图(Ps)');

子函数3:

functionPSNR=psnr(a)

[m,n]=size(a);

a=uint8(a);

a=double(a);

imagesize=m*n;

MSE=sum(dot(a,a))/imagesize;

PSNR=10*log10(255^2/MSE);

%%%%%%%%%%%%%%%%%%%%%%

说明:

1、因为本程序时间长,FX中先选择图片的大小

2、编码与解码

3、做误差图和只方图

4:画出每次迭代的解码图象

阅读全文

与图像的分形压缩编码相关的资料

热点内容
userid加密字符串设置 浏览:695
如何解析宝塔服务器域名 浏览:645
android日志串口 浏览:327
app和app如何转化 浏览:729
java实现文件的拷贝 浏览:7
如何把appstore移动到桌面 浏览:904
租用服务器延迟有什么解决方案 浏览:52
2004cad命令快捷 浏览:244
手动归档命令 浏览:895
文件夹信息跑到上面怎么恢复 浏览:629
plc的基本指令及编程 浏览:433
为什么用压缩空气洗车 浏览:463
php键值重复 浏览:53
mbp运行python 浏览:49
邮箱服务器源码 浏览:437
长沙java程序员待遇 浏览:397
怎么车载U盘分文件夹播放 浏览:340
华为健康使用命令 浏览:351
夸克解压后的文件在哪 浏览:926
秀直播系统源码php下载 浏览:294