当前位置 : 主页 > 编程语言 > python >

【图像压缩】基于分形编码实现图像压缩含Matlab源码

来源:互联网 收集:自由互联 发布时间:2022-06-18
1 简介 近年来,基于分形的图像压缩编码方法倍受国内外研究者的关注。分形编码是利用图像自相似性,通过消除图像数据信息的冗余度实现数据信息的压缩。而编码时间过长、计算复杂

1 简介

近年来,基于分形的图像压缩编码方法倍受国内外研究者的关注。分形编码是利用图像自相似性,通过消除图像数据信息的冗余度实现数据信息的压缩。而编码时间过长、计算复杂度高等一直是分形图像编码的缺点。针对这些缺点,本文将基本分形法做出改进,并提出了分形与DCT变换相结合的编码方法,具体工作如下:(1)在基本分形法图像压缩基础上,提出了一种基于相关系数的快速匹配算法的改进算法。该算法将在码本中搜索值域块的最佳匹配块问题转化为搜索与值域块有最大相关系数的定义域块的问题。为了提高编码速度,文中只计算定义域块和值域块的主次对角线上元素之间的相关系数。实验结果显示,在保证一定的图像质量前提下,编码时间大大减少。(2)提出了一种基于离散余弦变换(DCT)编码的改进算法。该算法保留了变换后频域内所有左上角系数及剩下的大于给定阈值的高能量系数,从而降低了图像的信息损失。实验结果显示,图像的恢复质量得到提高。(3)提出了一种基于分形和DCT变换编码相结合的图像压缩算法。该算法利用分形的整体与部分相似的思想,通过较大图像块来补偿较小图像块间的不连续性。实验结果显示,该算法提高了图像的恢复质量,降低了“块效应”现象。

2 部分代码

function [M] = divideblock(A, blocksize, i, a)
%将方阵A依次分解为大小为blockpixels的方阵,M为第i个方阵
%k为M第一个元素的纵坐标,s为横坐标
k = fix((i-1)*blocksize/a)*blocksize+1;%
s = mod(blocksize*(i-1)+1,a);
M = zeros(blocksize);
for q = 1:blocksize
for t = 1:blocksize
M(q, t) = A(k+q-1, s+t-1);
end
end

3 仿真结果

【图像压缩】基于分形编码实现图像压缩含Matlab源码_数据

【图像压缩】基于分形编码实现图像压缩含Matlab源码_数据_02

4 参考文献

[1]刘建军. 基于分形的图像压缩编码技术研究. 南京邮电大学, 2016.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。


【图像压缩】基于分形编码实现图像压缩含Matlab源码_图像压缩_03

网友评论