数据可视化: PCA显示特征向量

import os,cv2
import numpy as np
from sklearn.decomposition import IncrementalPCA

input_folder = 'images/'
H,W = 72,72
comp_num = 5

X = []
for name in os.listdir(input_folder):
    path = os.path.join(input_folder, name)
    img = cv2.imread(path,0)
    X.append(np.reshape(img,(1,-1)))
X = np.vstack(X)
print X.shape

transformer = IncrementalPCA(n_components=comp_num * comp_num)
transformer.partial_fit(X)

print 'pc shape:',transformer.components_.shape

vis = np.zeros( (comp_num * H, comp_num * W)  )
for y in range(comp_num):
    for x in range(comp_num):
        x0,y0 = x * W, y * H
        pos = y * comp_num + x
        data = np.reshape(transformer.components_[pos,:],H*W) * transformer.var_ + transformer.mean_
        vis[y0:y0+H, x0:x0+W] = np.reshape(data,(H,W))

print vis.min(), vis.max()
vis = np.uint8(vis)
cv2.imwrite("pc.bmp",vis)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值