【图像压缩】基于离散余弦变换DCT图像压缩(含PNSR压缩比)附Matlab代码

 ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,

代码获取、论文复现及科研仿真合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab完整代码及仿真定制内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

🔥 内容介绍

图像压缩是数字图像处理中的重要技术,它可以有效地减小图像文件的大小,从而节省存储空间和传输带宽。在图像压缩的过程中,离散余弦变换(DCT)是一种常用的方法,它可以将图像转换为频域表示,进而实现压缩。本文将介绍基于DCT的图像压缩方法,并探讨其压缩比和峰值信噪比(PNSR)的相关性。

首先,我们来了解一下离散余弦变换。DCT是一种广泛应用于信号处理和图像压缩中的变换方法,它将一个信号或图像分解为不同频率的成分。在DCT中,图像被分割成8x8的小块,每个小块都会进行DCT变换。通过DCT变换,图像中的能量集中在少量的频率分量上,这为压缩提供了可能。

基于DCT的图像压缩方法通常包括以下步骤:首先,将图像分割成8x8的小块;然后,对每个小块进行DCT变换;接着,利用量化表对DCT系数进行量化;最后,使用熵编码对量化后的系数进行编码。通过这些步骤,可以大大减小图像文件的大小,实现图像的压缩。

在图像压缩的过程中,压缩比和PNSR是两个重要的评价指标。压缩比指的是压缩前后图像文件大小的比值,它可以反映压缩效果的好坏。通常情况下,压缩比越大,表示压缩效果越好。而PNSR是衡量压缩后图像质量损失的指标,它可以通过计算原始图像和压缩后图像之间的均方误差来得到。一般来说,PNSR的数值越大,表示图像质量损失越小。

通过实验我们可以发现,压缩比和PNSR之间存在一定的关系。通常情况下,随着压缩比的增大,PNSR会逐渐减小,即图像的质量会逐渐下降。这是因为在压缩过程中,为了减小图像文件的大小,会对图像的信息进行丢失或者量化,从而导致图像质量的损失。因此,在实际应用中,需要根据具体的需求和场景来平衡压缩比和图像质量。

总之,基于离散余弦变换的图像压缩是一种常用的压缩方法,它可以有效地减小图像文件的大小,节省存储空间和传输带宽。在压缩过程中,压缩比和PNSR是两个重要的评价指标,它们之间存在一定的关系。在实际应用中,需要根据具体的需求来选择合适的压缩参数,以实现最佳的压缩效果。​

📣 部分代码

%% 将图像sunflower.jpg划分为8×8块。 计算每个块的DCT。 保留每个块中最高DCT系数的前25%(相对于幅度最高),并将其他系数设置为零。 对每个块进行逆DCT,然后显示重建的图像。 计算重建误差。 clear all;clc;%%%loading input imageimg = imread('data\img (1).jpg');img = rgb2gray(img);[p,q]=size(img);%computing dct for 8x8 blocksfor i=1:p/8    for j=1:q/8        coeffs = dct2(img(8*(i-1)+1:8*i,8*(j-1)+1:8*j));        %retaining only top 25% co-efficients by magnitude        coeffs_flatten = reshape(coeffs,[],1);        [val,ind]=sort(abs(coeffs_flatten),'descend');        coeffs(ind(17:end))=0;        %reconstructing image with most important information        reconstructed_img(8*(i-1)+1:8*i,8*(j-1)+1:8*j)=idct2(coeffs);    endend%plotting figuresfigure()imshow(img), title('原图');reconstructed_img=uint8(reconstructed_img);figure()imshow(reconstructed_img), title('重建图像');imwrite(reconstructed_img,'recontructed_dct.jpg');figure()%diff between reconstructed and original image%the error image is scaled appropriately for proper visualizationerr_img=(int8(reconstructed_img)-int8(img));imshow(8*err_img)%euclidean reconstruction errorerr=norm(double(reconstructed_img-img))

⛳️ 运行结果

🔗 参考文献

本程序参考以下中文EI期刊,程序注释清晰,干货满满。

[1] 罗云,谢斌盛.基于MATLAB的无线传感器网络的低功耗仿真[J].信息系统工程, 2015(6):2.DOI:10.3969/j.issn.1001-2362.2015.06.012.

[2] 余秋菊.基于DCT变换的JPEG图像压缩及其MATLAB实现[J].科技信息:学术研究, 2008, 000(036):566-567.DOI:CNKI:SUN:KJXI.0.2008-36-467.

🎈 部分理论引用网络文献,若有侵权联系博主删除
🎁  关注我领取海量matlab电子书和数学建模资料

👇  私信完整代码、论文复现、期刊合作、论文辅导及科研仿真定制

1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化
2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
2.图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
3 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化
4 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化
5 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
6 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
7 电力系统方面
微电网优化、无功优化、配电网重构、储能配置
8 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长
9 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

CT image compression (a) Implement the simplified DCT compression process above for n = 2, 4, and 8 and apply it to the attached image. Show the reconstructed images for these three different cases. [3 images] Compute the PSNR values of the three reconstructed images and discuss what the PSNR value means here. (b) Use the same process in (a) with image transformed to YIQ color model and show the reconstructed image in RGB space. [3 images] Compute the PSNR values of the three reconstructed images and discuss what the PSNR value means here. Dithering 2. Dithering (30%) Convert the image cat2_gray.png to binary (black and white) image with different methods of dithering, show the results, and make some comparison with the results. (a) Apply noise (random) dithering on the provided image and show the result. [1 image] (b) Apply average dithering on the provided image and show the result. [1 image] (c) Apply error diffusion dithering (Floyd-Steinberg algorithm) on the provided image and show the result. [1 image] Image Interpolation Implement the image interpolation function to upsample an image to four times the original width and height. Implement the following two different interpolation methods and show the 4× upsampled images. (a) Apply nearest-neighbor interpolation on the low resolution image, cat3_LR.png, and compute the PSNR with the original high resolution image, cat3_HR.png. [1 image] (b) Apply bilinear interpolation on the low resolution image and compute the PSNR with the high resolution image. [1 image] (c) Apply bicubic interpolation on the low resolution image and compute the PSNR with the high resolution image. [1 image]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值