用Python 基于PCA写一个实现4张图片同时压缩,并显示出来的代码
时间: 2024-05-09 09:18:12 浏览: 213
好的,以下是基于PCA压缩4张图片的Python代码:
```python
import numpy as np
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
# 读入4张图片
img1 = plt.imread('image1.jpg')
img2 = plt.imread('image2.jpg')
img3 = plt.imread('image3.jpg')
img4 = plt.imread('image4.jpg')
# 将4张图片合并成一个矩阵
data = np.stack([img1.flatten(), img2.flatten(), img3.flatten(), img4.flatten()])
# 进行PCA降维
pca = PCA(n_components=50) # 选择50个主成分
data_pca = pca.fit_transform(data)
# 将降维后的数据还原成原来的形状,并显示出来
recons_data = pca.inverse_transform(data_pca)
plt.subplot(2, 2, 1)
plt.imshow(recons_data[0].reshape(img1.shape))
plt.subplot(2, 2, 2)
plt.imshow(recons_data[1].reshape(img2.shape))
plt.subplot(2, 2, 3)
plt.imshow(recons_data[2].reshape(img3.shape))
plt.subplot(2, 2, 4)
plt.imshow(recons_data[3].reshape(img4.shape))
plt.show()
```
这段代码可以实现对4张图片进行PCA降维,并将压缩后的图片显示出来。您可以按照自己的需求修改代码,比如选择不同的主成分数量,或者处理不同的图片。有任何问题欢迎随时问我哦~
阅读全文