pythonで画像(8×8の64枚)に対してPCAを行っております。
PCAを行い,累積寄与率などは出力できたのですが,第1主成分のみで画像を再構築,第1-2主成分のみで画像を再構築,などを行いたいです。
コードは下記で累積寄与率までは出力できております。
import numpy as np import itertools from sklearn.decomposition import PCA import matplotlib.pyplot as plt data=[] N=60 for i in range(N): img = np.array(Image.open("./pca/./5/_"+str(i)+".jpg")) img_flatten=list(itertools.chain.from_iterable(img)) data.append(img_flatten) #principal component analysis pca = PCA() pca.fit(data) data = pca.transform(data) #pcaの寄与率計算 contribution = pca.explained_variance_ratio_ #寄与率を累積和に変更 contribution = np.cumsum(contribution) #最初に0を追加 contribution = np.append(0,contribution) #寄与率の描画 plt.plot(contribution,marker="o") plt.xlim(0,65) plt.ylim(0,1.1) plt.show() コード
画像の再構築にはpca.inverse関数を使うんでしょうか,,,?サイトごとに使っている関数が違い,自分のプログラムに適応させれないです。
どなたかよろしくお願いいたします。
あなたの回答
tips
プレビュー