【图像压缩】离散余弦变换DCT图像压缩(含PNSR压缩比)【含Matlab源码 3309期】

您所在的位置:网站首页 14的压缩比 【图像压缩】离散余弦变换DCT图像压缩(含PNSR压缩比)【含Matlab源码 3309期】

【图像压缩】离散余弦变换DCT图像压缩(含PNSR压缩比)【含Matlab源码 3309期】

2024-07-15 14:10| 来源: 网络整理| 查看: 265

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。 🍎个人主页:海神之光 🏆代码获取方式: 海神之光Matlab王者学习之路—代码获取方式 ⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇 Matlab图像处理(进阶版) 路径规划(Matlab) 神经网络预测与分类(Matlab) 优化求解(Matlab) 语音处理(Matlab) 信号处理(Matlab) 车间调度(Matlab)

⛄一、离散余弦变换DCT图像压缩简介

1 离散余弦变换DCT原理 离散余弦变换(Discrete Cosine Transformation,DCT)是一种常用的图像压缩和加密算法,其基本思想是将图像从时域转换到频域进行处理,以减少图像数据的冗余度和复杂度,实现图像压缩和加密等功能。

DCT是一种将实数序列或有限信号分解成一组基频率的变换,是傅里叶变换的一种特例。它基于一组正弦函数的离散变换,可以将一组N个实数序列x(0)、x(1) …… x(N-1)转换成一组N个实数序列c(0)、c(1) …… c(N-1)。

DCT实现的基本原理是将I(x,y)的N行N列的像素值经过DCT变换后,将高频变换系数取0,将变换后的低频变换系数重新排列成N行N列的矩阵。这样就得到了新的像素值序列I’(x,y),通过将原图像I(x,y)的高频系数变换成0,保留其余低频系数的方法,实现了图像压缩的目的。

DCT变换的数学原理是将与DFT(离散傅里叶变换)相似的公式推广到实数序列上进行计算,其主要的区别在于DCT使用的是实数系数,而DFT使用的是复数系数。DCT的基本公式可以写作:

C(k) = α(k)· Σ(x(l) ·cos[(π(k/2N)(2l+1)]))

其中,C(k)表示DCT变换后的第k个系数,α(k)表示归一化系数,l表示序列x中的第l个元素,N为序列的长度。

DCT变换的数学实现包括分块、预处理、变换、量化和熵编码等过程,其中预处理是为了减少计算复杂度和优化精度,变换是将输入序列映射到新的频域空间,量化是将频域空间的系数进行舍入操作,降低数据的精度,熵编码是将量化后的系数进行编码,通过移除系数中一些数据来实现图像压缩的目的。

总之,DCT的主要意义是实现图像压缩和加密,通过将图像数据从时域转换到频域进行处理,减少数据冗余和复杂度,从而实现更高效的数据储存和传输,保护图像隐私和安全。

2 DCT图像压缩原理 DCT变换是最小均方误差条件下得出的次最佳正交变换,且已获得广泛应用,并成为许多图像编码国际标准的核心。JPEG图像格式的压缩算法采用的就是DCT变换,DCT变换的变换核为余弦函数,计算速度较快,有利于图像压缩和其他处理。在编码过程中,JPEG算法首先将RGB分量转化为亮分量和色差分量,然后将图像分解为8*8的像素块,,对这个8*8块进行二维离散余弦变换,每个块就产生了64个DCT系数,其中一个是直流(DC),它表示了8*8输入矩阵全部值的平均数,其余63个系数为交流(AC)系数,接下来对DCT系数进行量化,最后将量化的DCT系数进行编码,就形成了压缩后的图像格式。在解码过程中,先对已编码的量化的系数进行解码,然后求逆量化并利用二维DCT反变换把DCT系数转化为8*8样本像块,最将反变换后的块组合成一幅图像。这样就完成了图像的压缩和解压过程。

离散余弦变换DCT的MATLAB实现有两种方 法,一种是基于FFR的快速算法,这是通过MATLAB工具箱提供的DCT2函数实现的;另一种是DCT变换是矩阵方法。变换矩阵方法非常适合做8*8或16 *16的图像块的DCT变换,工具箱提供了dctmtx函数来计算变换矩阵。

3 真彩色增强 真彩色增强主要是针对伪彩色增强而言的。图像的色彩增强技术主要分为为彩色增强和真彩色增强两种,这两种方法在原理上存在着本质的区别。伪彩色增强时对原灰度图像中不同灰度值区域分别付于不同的颜色,使人能够更明白的区分不同的灰度级。由于原始图像事实上是没有颜色的,所以称这种人工赋予的颜色为伪彩色,伪彩色增强实质上只是一个图像的着色过程是一种灰度到彩色的映射技术。真彩色增强则是对原始图像本身具有的颜色进行调节,是一个彩色到彩色的映射过程。

4 平滑 在图像中,通过相邻点的相互平均可以去掉一些突然变化的点,从而滤掉一定的噪声,达到平滑的目的,使图片看起来更柔和,颜色更均匀更清晰。

5 锐化 图像平滑往往使图像中的边界、轮廓变得模糊,为了减少这类不利效果的影响,需要用图像锐化技术使图像的边缘变的清晰。图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变的清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变的清晰。从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。在水下图像的增强处理中除了去噪,对比度扩展外,有时候还需要加强图像中景物的边缘和轮廓。而边缘和轮廓常常位于图像中灰度突变的地方,因而可以直观地想到用灰度的差分对边缘和轮廓进行提取。

6 灰度变换(直方图均衡化) 直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。设原始图像在(x,y)处的灰度为f,而改变后的图像为g,则对图像增强的方法可表述为将在(x,y)处的灰度f映射为g。在灰度直方图均衡化处理中对图像的映射函数可定义为:g = EQ (f),这个映射函数EQ(f)必须满足两个条件(其中L为图像的灰度级数):

(1)EQ(f)在0≤f≤L-1范围内是一个单值单增函数。这是为了保证增强处理没有打乱原始图像的灰度排列次序,原图各灰度级在变换后仍保持从黑到白(或从白到黑)的排列。

(2)对于0≤f≤L-1有0≤g≤L-1,这个条件保证了变换前后灰度值动态范围的一致性。

7 图像滤波 滤波器是一种选频装置可以使信号中特定的频率成分通过而极大地衰减其它频率成分,可以滤除干扰噪声。在数字图像处理中,常常会遇到图像中混杂有许多的噪声。因此,在进行图像处理中,有时要先进行祛除噪声的工作。最常用的祛除噪声的方法是用滤波器进行滤波处理。MATLAB的图像处理工具箱里也设计了许多的滤波器。如均值滤波器、中值滤波器、维纳滤波器等。

8 维纳滤波器 维纳滤波器(Wiener filter)是由数学家维纳(Rorbert Wiener)提出的一种以最小平方为最优准则的线性滤波器。在一定的约束条件下,其输出与一给定函数(通常称为期望输出)的差的平方达到最小,通过数学运算最终可变为一个托布利兹方程的求解问题。维纳滤波器又被称为最小二乘滤波器或最小平方滤波器,目前是基本的滤波方法之一。维纳滤波是利用平稳随机过程的相关特性和频谱特性对混有噪声的信号进行滤波的方法。

9 中值滤波器 中值滤波是一种非线性数字滤波器技术,经常用于去除图像或者其它信号中的噪声。这个设计思想就是检查输入信号中的采样并判断它是否代表了信号,使用奇数个采样组成的观察窗实现这项功能。观察窗口中的数值进行排序,位于观察窗中间的中值作为输出。然后,丢弃最早的值,取得新的采样,重复上面的计算过程。 中值滤波是图像处理中的一个常用步骤,它对于斑点噪声(en:speckle noise)和椒盐噪声(en:salt-and-pepper noise)来说尤其有用。保存边缘的特性使它在不希望出现边缘模糊的场合也很有用。

⛄二、部分源代码

%dct实现图像量化压缩 clc,clear; % 图像读取与灰度化 gray = rgb2gray(imread(‘data\img (2).jpg’)); % 将图像数据uint8类型转换为double类型并进行归一化 doubleGray = im2double(gray); % 存储图片以便计算压缩比 imwrite(doubleGray, ‘data\c.png’); % 定义DCT变换矩阵 t = dctmtx(8); % 将原图的每个8x8块进行DCT变换 y = blkproc(doubleGray, [8 8], ‘P1xP2’, t, t’); subplot(3,2,1), imshow(log(abs(y)), []), title(‘DCT系数’); % 定义量化矩阵 mask1 = [1 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0]; mask8 = [1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 0; 1 1 1 1 1 1 0 0; 1 1 1 1 1 0 0 0; 1 1 1 1 0 0 0 0; 1 1 1 0 0 0 0 0; 1 1 0 0 0 0 0 0; 1 0 0 0 0 0 0 0]; mask9 = [0 0 1 1 1 1 1 1; 0 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1]; maskall=[1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1; 1 1 1 1 1 1 1 1]; % 对DCT系数矩阵进行量化

⛄三、运行结果

在这里插入图片描述 在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本 2014a

2 参考文献 [1]郑伟,崔跃利,王芳.基于小波变换的图像压缩编码研究综述[J].通信技术. 2008,(02)

3 备注 简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询 1 各类智能优化算法改进及应用 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面 旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面 微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面 交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面 卡尔曼滤波跟踪、航迹关联、航迹融合



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3