文章目录
一、简单的图像压缩
ImageEnhance模块
- ImageEnhance.Color(image) 颜色增强类:用于调整图像的颜色均衡
- ImageEnhance.Brightness(image) 亮度增强类:用于调整图像的亮度。
- ImageEnhance.Contrast(image) 对比度增强类:用于调整图像的对比度。
一张1.2M的图片依次先执行压缩(868KB),再提升对比度,再转成灰度图
依次是原图,enhance(1.2),enhance(2.8)的图片
二、基于机器学习的图像压缩方法
关于PCA降维,SVD理论详情
SVD图像压缩
图片大小依次为:19.2KB,20.2KB,28.3KB,40.12KB,49.5KB,50.4KB(原图) 奇异值分解能够有效的降低数据的维数,以本文的图片为例,从450维降到149维后,还保留了90%的信息
虽然奇异值分解很有效,但是不能滥用,一般情况下要求降维后信息的损失度不能超过5%,甚至是1%
Ng的视频中提到常见的错误使用降维的情况,在这里也贴出来:
使用降维解决过拟合问题
不论什么情况,先用降维处理一下数据,即把降维当做模型训练的必须步骤
PCA图像压缩
pca函数实现图像的降维 关于PCA理论详情请点击
显然,k=30时就包含了矩阵的至少70%的信息含量,当k=90时就包含了矩阵的至少90%信息含量。
代码参考:https://github.com/NourozR/Reconstruction-and-Compression-of-Color-Images/blob/master。
三、基于K-means图像压缩
参考:https://github.com/NourozR/Reconstruction-and-Compression-of-Color-Images/blob/master。