⛄一、奇异值分解图像压缩
1 前言
数字图片在计算机中是以矩阵形式存储的。所以可以通过矩阵理论和矩阵算法对数字图像进行分析和处理。本文通过对图片进行SVD压缩,对不同的参数下的压缩效果进行对比。
SVD概念可以参考:《统计学习方法》–奇异值分解(Singular Value Decomposition,SVD)
2 原理简介
彩色图片有3个图层,RGB(红、绿、蓝)也就是矩阵的一个位置上存储了3个基色的数值,由3个基色混合成不同的色彩。
通过对3个图层矩阵,分别进行SVD近似,SVD奇异值是唯一的,可以取前 k 个最大的奇异值进行近似表达,最后再将3个图层的矩阵数据合并,用较少的数据去表达图片。
3 彩色图像压缩的具体思路
第一步:通道分离
对于JPG格式的彩色图片,拥有3个颜色通道,R、G、B,那么可以尝试将每个颜色通道进行分离,产生3个形状均为图像高 x 宽 的单通道剧展,即imageR,imageG,imageB。
第二步:矩阵压缩
对每个单通道矩阵进行奇异值分解,按照压缩的实际需要取前k个奇异值,进行3个单通道的矩阵的压缩近似,各自的处理过程同灰度图的处理过程完全一样。最后分别形成3个压缩后的矩阵:imageRC,imageGC,imageBC。
第三步:图像重建
将3个压缩后的单通道矩阵合并形成表示JPG格式的3D张量,通过该3D张量重构出压缩后的彩色图像。