【图像压缩】基于奇异值分解SVD实现图像压缩附Matlab代码

 ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。

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

🍊个人信条:格物致知。

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

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

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

物理应用             机器学习

🔥 内容介绍

图像压缩是图像处理中一项重要的技术,它可以减少图像文件的大小,便于存储和传输。目前,图像压缩算法主要分为有损压缩和无损压缩两大类。有损压缩算法可以获得更高的压缩比,但会损失部分图像信息;而无损压缩算法则可以保证图像信息不丢失,但压缩比相对较低。

本文将介绍一种基于奇异值分解(SVD)的图像有损压缩算法。SVD是一种矩阵分解技术,可以将一个矩阵分解为三个矩阵的乘积,即 U、Σ 和 V。对于图像压缩,我们将图像矩阵分解为 U、Σ 和 V 三个矩阵,其中 Σ 矩阵包含了图像的主要信息,而 U 和 V 矩阵则包含了图像的细节信息。通过对 Σ 矩阵进行压缩,我们可以有效地减少图像文件的大小。

奇异值分解(SVD)

奇异值分解(SVD)是一种矩阵分解技术,可以将一个矩阵分解为三个矩阵的乘积,即 U、Σ 和 V。对于一个 m × n 的矩阵 A,其 SVD 分解形式为:

 

A = UΣV^T

其中:

  • U 是一个 m × m 的酉矩阵,其列向量为 A 的左奇异向量。

  • Σ 是一个 m × n 的对角矩阵,其对角线元素为 A 的奇异值。

  • V 是一个 n × n 的酉矩阵,其列向量为 A 的右奇异向量。

奇异值分解具有以下性质:

  • 正交性: U 和 V 都是酉矩阵,即 U^TU = I 和 V^TV = I。

  • 对角化: Σ 是一个对角矩阵,其对角线元素为 A 的奇异值。

  • 秩: A 的秩等于 Σ 中非零奇异值的个数。

基于 SVD 的图像压缩算法

基于 SVD 的图像压缩算法主要分为以下几个步骤:

  1. 将图像转换为灰度图像。

  2. 将灰度图像转换为矩阵 A。

  3. 对矩阵 A 进行 SVD 分解,得到 U、Σ 和 V 三个矩阵。

  4. 对 Σ 矩阵进行压缩,保留前 k 个奇异值。

  5. 根据压缩后的 Σ 矩阵重建图像。

其中,压缩 Σ 矩阵的具体方法可以根据不同的需求而定。例如,我们可以使用阈值截断法、奇异值软阈值法或奇异值硬阈值法等方法。

压缩效果分析

基于 SVD 的图像压缩算法的压缩效果主要取决于压缩 Σ 矩阵的程度。奇异值越少,压缩比越高,但图像质量也会下降。因此,在实际应用中,需要根据具体需求权衡压缩比和图像质量之间的关系。

下图展示了基于 SVD 的图像压缩算法在不同压缩比下的压缩效果。可以看出,随着压缩比的增加,图像质量逐渐下降。

[图片:基于 SVD 的图像压缩算法在不同压缩比下的压缩效果]

总结

基于奇异值分解(SVD)的图像压缩算法是一种有效的图像有损压缩算法。该算法通过对图像矩阵进行 SVD 分解,并压缩 Σ 矩阵来实现图像压缩。压缩效果主要取决于压缩 Σ 矩阵的程度,需要根据具体需求权衡压缩比和图像质量之间的关系。

📣 部分代码

%clear all;imagefile = 'nature.jpg';insert = @(a, x, n)cat(2,  x(1:n), a, x(n+1:end));showImages = 0;res = 1;start = 1;step = 5;ending = 300;count =2;plotcount =2;a = 1;xq = 1:res:ending;N=linspace(start,ending,ending/step);C=linspace(start,ending,ending);y=linspace(start,ending,ending/step);')C = insert(0,C,0);subplot(2,3,6) , imshow(imagefile) , title('Original Image');%z = insert(100,z,0);%xq = insert(0,xq,0);vq = interp1(C,z,xq,'PCHIP');movegui(500,'west');figure(ending+1);syms b;l = vpasolve(vq(1)/b==100,b);vq = double(vq/l);plot(xq,vq);title('Error in compression');grid onxlabel('Number of Singular Values used');ylabel('PercentErrorbetween compressed and original image');set(gca,'xtick',[0:25:300]);movegui(ending+1,'east');p = polyfit(xq,vq,2);legend([num2str(p(1)) 'x^2  + ' num2str(p(2)) 'x  + 100']);sprintf('Stage 4Complete \n\n')

⛳️ 运行结果

🔗 参考文献

[1]胡乡峰,卫金茂.基于奇异值分解(SVD)的图像压缩[J].东北师大学报:自然科学版, 2006, 38(3):4.DOI:10.3321/j.issn:1000-1832.2006.03.008.

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

👇  私信完整代码和数据获取及论文数模仿真定制

1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱船配载优化、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化
2 机器学习和深度学习方面

2.1 bp时序、回归预测和分类

2.2 ENS声神经网络时序、回归预测和分类

2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类

2.4 CNN/TCN卷积神经网络系列时序、回归预测和分类

2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类

2.7 ELMAN递归神经网络时序、回归\预测和分类

2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类

2.9 RBF径向基神经网络时序、回归预测和分类

2.10 DBN深度置信网络时序、回归预测和分类
2.11 FNN模糊神经网络时序、回归预测
2.12 RF随机森林时序、回归预测和分类
2.13 BLS宽度学习时序、回归预测和分类
2.14 PNN脉冲神经网络分类
2.15 模糊小波神经网络预测和分类
2.16 时序、回归预测和分类
2.17 时序、回归预测预测和分类
2.18 XGBOOST集成学习时序、回归预测预测和分类
方向涵盖风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、用电量预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
2.图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
3 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、 充电车辆路径规划(EVRP)、 双层车辆路径规划(2E-VRP)、 油电混合车辆路径规划、 船舶航迹规划、 全路径规划规划、 仓储巡逻
4 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化、车辆协同无人机路径规划
5 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
6 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
7 电力系统方面
微电网优化、无功优化、配电网重构、储能配置、有序充电
8 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长 金属腐蚀
9 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 13
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Matlab科研辅导帮

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

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

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

打赏作者

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

抵扣说明:

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

余额充值