特征值分解和奇异值分解
这篇文章详细介绍了奇异值分解和特征值分解的内容:https://www.cnblogs.com/endlesscoding/p/10033527.html
下面的图也能看出图片能压缩的原理在哪,主要是三个矩阵的大小是如何变小的
下面上压缩图像的代码:
1 import numpy as np 2 from scipy import ndimage 3 import matplotlib.pyplot as plt 4 5 6 def pic_compress(k, pic_array): 7 u, sigma, vt = np.linalg.svd(pic_array) 8 sig = np.eye(k) * sigma[: k] 9 new_pic = np.dot(np.dot(u[:, :k], sig), vt[:k, :]) # 还原图像 10 size = u.shape[0] * k + sig.shape[0] * sig.shape[1] + k * vt.shape[1] # 压缩后大小 11 return new_pic, size 12 13 14 filename = "./Data/pic1.jpg" 15 ori_img = np.array(ndimage.imread(filename, flatten=True)) 16 new_img, size = pic_compress(30, ori_img) 17 print("original size:" + str(ori_img.shape[0] * ori_img.shape[1])) 18 print("compress size:" + str(size)) 19 fig, ax = plt.subplots(1, 2) 20 ax[0].imshow(ori_img) 21 ax[0].set_title("before compress") 22 ax[1].imshow(new_img) 23 ax[1].set_title("after compress") 24 plt.show()
作者:你的雷哥
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
2019-08-13 吴恩达深度学习测试题与编程题及答案汇总
2019-08-13 吴恩达《深度学习》第一门课(2)神经网络的编程基础
2019-08-13 吴恩达《深度学习》第一门课(1)深度学习引言
2018-08-13 爬取网页