import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from skimage import io, color
# 加载图像
img = io.imread(r"D:\YWJ\6_jiaoben_set\10_20_18.jpg")
# 将图像转换为灰度图像
img_gray = color.rgb2gray(img)
# 将图像展平为一维数组
img_flat = img_gray.flatten()
# 对图像进行PCA降维
pca = PCA(n_components=0.95, whiten=True, random_state=40)
img_pca = pca.fit_transform(img_flat.reshape(-1, 1))
# 对降维后的图像进行反变换,得到原始图像矩阵
img_rec = pca.inverse_transform(img_pca)
img_rec = img_rec.reshape(img_gray.shape)
# 绘制原始图像和降维后的图像
fig, ax = plt.subplots(1, 2, figsize=(10, 5))
ax[0].imshow(img_gray, cmap="gray")
ax[0].set_title("Original Image")
ax[1].imshow(img_rec, cmap="gray")
ax[1].set_title("PCA Reconstruction")
plt.savefig("33333.png")
plt.show()
主成分分析(PCA)是一种常见的数据分析技术,它可以用于降维和特征提取。PCA 的作用包括以下几个方面:
数据降维:PCA 可以将高维数据降维到低维空间中,从而方便后续的数据分析和可视化。例如,可以将具有多个变量的数据集降维到仅有几个主成分,而这些主成分包含了原始数据的大部分信息。 数据可视化:由于 PCA 能够将高维数据降维到低维空间,因此可以将数据可视化为二维或三维图形。这有助于我们更好地理解数据之间的关系和分布。 特征提取:PCA 可以识别出数据中最重要的特征,即主成分。这些主成分可以用于数据分类、聚类等任务中,或者作为后续分析的输入特征。 去除数据噪声:通过PCA去除数据中的噪声,可以提高模型的预测准确度和稳定性。PCA 可以识别出数据中最相关的信息并过滤掉不相关的信息,从而提高数据的质量和准确性。
综上所述,PCA 在数据分析、数据挖掘、机器学习等领域中具有重要的应用价值
文章来源
发表评论