我有一个数据集,上面有表情快乐的表情。每个图像都有一个百分比(整数值)表示脸部的快乐程度,范围为0-100%(0表示中性,100表示最大幸福度)。我想在这上面应用PCA来减少维数,以便以后应用机器学习,但是我想知道我应该如何处理这个问题。在
我目前的代码:
import os
import cv2
import numpy as np
from sklearn.decomposition import PCA
folder = os.path.join('..','data','diff_face_s')
#Holds per emotion the data
class diffPCA():
def __init__(self, emo):
self.emo = emo
self.data = np.empty([1,270,270], dtype=np.uint8)
self.pers = [0]
self.perc = [0]
#PCA
self.pca = PCA(n_components = 2)
#Add flattened image
def process(self, img, pers, perc):
#img: diff_face, pers: person, perc: percentage
img_raw = cv2.imread(os.path.join(folder, img), 0)
img_flat = img_raw.flatten()
self.data = np.vstack(img_flat)
self.pers.append(pers)
self.perc.append(perc)
def doPCA(self):
self.pca.fit(self.data)
def printPCA(self):
print(self.pca.explained_variance_ratio_)
#Emotions
happy = diffPCA(1)
for img in os.listdir(folder):
print(img)
#name
#perc
#pers
#if name starts with 1:
happy.process(img, perc, pers)
happy.doPCA()
happy.printPCA()
问题:
基于百分比的图像降维的最佳方法是什么?我能列出一个目标清单吗?我有100节课吗(每百分之一)?在
This example from the gallery可能有助于了解如何进行。在
相关问题 更多 >
编程相关推荐