aligned数据集没有直接的标签,需要在标签里添加字符串_aligned。
[Note] 0: Neutral; 1: Happiness; 2: Sadness; 3: Surprise; 4: Fear; 5: Disgust; 6: Anger
import pandas as pd
import cv2
from tqdm import tqdm
df=pd.read_csv('list_patition_label.txt',names=
['path','class'],sep=' ')
labels=df['class']
paths=df['path']
emotions={1:3,
2:4,
3:5,
4:1,
5:2,
6:6,
7:0
}
for i in tqdm(range(len(labels))):
s=paths[i]
if s[:4]=='trai':
s1=s[:11]
s2=s[-4:]
s=s1+'_aligned'+s2 #更新path
opath='aligned/'+s #数据地址
dpath='RAF-a/train/'+str(emotions[labels[i]])+'/'+s #存储目标地址
img=cv2.imread(opath) #读取
cv2.imwrite(dpath,img) #写入
if s[:4]=='test':
s1=s[:9]
s2=s[-4:]
s=s1+'_aligned'+s2
print(s)
opath='aligned/'+s
dpath='RAF-a/test/'+str(emotions[labels[i]])+'/'+s
img=cv2.imread(opath)
cv2.imwrite(dpath,img)