[數據處理][原創]fer2013數據集csv轉jpg

網上找了代碼,發現有點毛病,於是改了改,人家用pillow我換成opencv了,生成在腳本目錄下面別找錯位置了
# encoding:utf-8
import pandas as pd
import numpy as np
import cv2
import os

emotions = {
    '0': 'anger',  # 生氣
    '1': 'disgust',  # 厭惡
    '2': 'fear',  # 恐懼
    '3': 'happy',  # 開心
    '4': 'sad',  # 傷心
    '5': 'surprised',  # 驚訝
    '6': 'normal',  # 中性
}


# 創建文件夾
def createDir(dir):
    if os.path.exists(dir) is False:
        os.makedirs(dir)


def saveImageFromFer2013(file):
    # 讀取csv文件
    faces_data = pd.read_csv(file)
    imageCount = 0
    # 遍歷csv文件內容,並將圖片數據按分類保存
    for index in range(len(faces_data)):
        # 解析每一行csv文件內容
        emotion_data = faces_data.loc[index][0]
        image_data = faces_data.loc[index][1]
        usage_data = faces_data.loc[index][2]
        # 將圖片數據轉換成48*48
        data_array = list(map(float, image_data.split()))
        data_array = np.asarray(data_array)
        image = data_array.reshape(48, 48)
        print(type(image))
        # 選擇分類,並創建文件名
        dirName = usage_data
        emotionName = emotions[str(emotion_data)]

        # 圖片要保存的文件夾
        imagePath = os.path.join(dirName, emotionName)

        # 創建“用途文件夾”和“表情”文件夾
        createDir(dirName)
        createDir(imagePath)

        # 圖片文件名
        imageName = os.path.join(imagePath, str(index) + '.jpg')

        cv2.imwrite(imageName, image)
        imageCount = index
    print('總共有' + str(imageCount) + '張圖片')


if __name__ == '__main__':
    saveImageFromFer2013('D:/fer2013.csv')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章