Practice of PILos——transform np.array into img ,store in batch

先放上源码

import os
import shutil
import subprocess
import tarfileimport os
import pandas as pd
import numpy as np
from PIL import Image# Set up Kaggle API credentials
kaggle_json_path = os.path.expanduser("~/.kaggle/kaggle.json")if not os.path.isfile(kaggle_json_path):username = input("Kaggle username: ")api_key = input("Kaggle API key: ")# Create the directory if it doesn't existos.makedirs(os.path.dirname(kaggle_json_path), exist_ok=True)# Write the credentials to the kaggle.json filewith open(kaggle_json_path, "w") as file:file.write(f'{{"username":"{username}","key":"{api_key}"}}')# Set file permissions to read and write for the owner onlyos.chmod(kaggle_json_path, 0o600)# Importing kaggle will authenticate automatically
import kaggle# Command to authenticate and download the dataset
api_command = "kaggle competitions download -c challenges-in-representation-learning-facial-expression-recognition-challenge -f fer2013.tar.gz"# Execute the command
try:subprocess.run(api_command, shell=True, check=True)
except subprocess.CalledProcessError as e:print("An error occurred while downloading the dataset. Please double-check your Kaggle API key.")os.remove(kaggle_json_path)print("Preparing dataset..")
with tarfile.open("fer2013.tar.gz", "r") as tar:tar.extractall("fer2013")output_folder_path = "FER2013"# Load the CSV file into a Pandas DataFrame
df = pd.read_csv("fer2013/fer2013/fer2013.csv")# Define a dictionary to map emotion codes to labels
emotion_labels = {"0": "Angry","1": "Disgust","2": "Fear","3": "Happy","4": "Sad","5": "Surprise","6": "Neutral",
}# Create the output folders and subfolders if they do not exist
if not os.path.exists(output_folder_path):os.makedirs(output_folder_path)
for usage in ["train", "val", "test"]:usage_folder_path = os.path.join(output_folder_path, usage)if not os.path.exists(usage_folder_path):os.makedirs(usage_folder_path)for label in emotion_labels.values():subfolder_path = os.path.join(usage_folder_path, label)if not os.path.exists(subfolder_path):os.makedirs(subfolder_path)# Loop over each row in the DataFrame
for index, row in df.iterrows():# Extract the image data from the rowpixels = row["pixels"].split()img_data = [int(pixel) for pixel in pixels]img_array = np.array(img_data).reshape(48, 48)img = Image.fromarray(img_array.astype("uint8"), "L")# Get the emotion label and determine the output subfolder based on the Usage columnemotion_label = emotion_labels[str(row["emotion"])]if row["Usage"] == "Training":output_subfolder_path = os.path.join(output_folder_path, "train", emotion_label)elif row["Usage"] == "PublicTest":output_subfolder_path = os.path.join(output_folder_path, "val", emotion_label)else:output_subfolder_path = os.path.join(output_folder_path, "test", emotion_label)# Save the image to the output subfolderoutput_file_path = os.path.join(output_subfolder_path, f"{index}.jpg")img.save(output_file_path)print("Deleting temporary files..")
os.remove("fer2013.tar.gz")
shutil.rmtree("fer2013")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1323586.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Python搭建编程环境—安装Python3解释器

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:零基础学Python 💬个人格言:不断的翻越一…

“多组数组”题的注意事项,天杀的“鲁棒性”

【题目描述】 输入一些整数,求出它们的最小值、最大值和平均值(保留3位小数)。输入保证这些数都是不超过1000的整数。 输入包含多组数据,每组数据第一行是整数个数n,第二行是n个整数。n=0为输入结束标记&…

[C++初阶]初识C++(一)—————命名空间和缺省函数

声明: 本篇文献内容选自百度文库、比特就业课 代码内容部分选自比特就业课 一、命名空间 1.什么是命名空间 在编程语言中,命名空间是一种特殊的作用域,它包含了处于该作用域中的所有标示符,而且其本身也是由标示符表示的。命名空间的使用目…

vue3+echarts:echarts地图打点显示的样式

colorStops是打点的颜色和呼吸灯、label为show是打点是否显示数据、rich里cnNum是自定义的过滤模板用来改写显示数据的样式 series: [{type: "effectScatter",coordinateSystem: "geo",rippleEffect: {brushType: "stroke",},showEffectOn: &quo…

权限提升-Linux系统权限提升篇VulnhubRbash绕过DockerLXD容器History泄漏shell交互

知识点 1、普通用户到Linux-泄漏-History 2、普通用户到Linux-限制-Rbash绕过 3、普通用户到Linux-容器-LXD&Docker 4.Linux系统提权-web/普通用户-docker逃逸&提权&shell交互 章节点: 1、Web权限提升及转移 2、系统权限提升及转移 3、宿主权限提升及…

STM32 移植 LVGL -- 教程图解

( 编辑状态中,已完成80%,估计清明假期后完成更新 ) 移植效果,先睹为快: 目录 一、LVGL 简述 二、准备一个STM32的工程 三、LVGL 官方下载 四、裁剪 源文件 五、添加 源文件 六、注册 显示 七、注册 触摸输入 八…

语言模型进化史(上)

由于篇幅原因,本文分为上下两篇,上篇主要讲解语言模型从朴素语言模型到基于神经网络的语言模型,下篇主要讲解现代大语言模型以及基于指令微调的LLM。文章来源是:https://www.numind.ai/blog/what-are-large-language-models 一、语…

【C++入门】初识C++

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

单片机家电产品--过零检测

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 单片机家电产品–过零检测 前言 记录学习单片机家电产品内容 已转载记录为主 一、知识点 1 什么是过零检测 1 过零检测指的是在交流系统中,在一个交流周期中…

第12章 集合框架

一 集合框架概述 1.1 生活中的容器 1.2 数组的特点与弊端 一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用数组存储对象方面具有一些弊端,而Java 集合…

搜索--找出克隆二叉树中的相同节点

题目描述 给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始树 original 中的目标节点 target。 其中,克隆树 cloned 是原始树 original 的一个 副本 。 请找出在树 cloned 中,与 target 相同 的节点&#xff…

蓝桥杯备考

目录 P8823 [传智杯 #3 初赛] 期末考试成绩 题目描述 输入格式 输出格式 输入输出样例 说明/提示 代码 P8828 [传智杯 #3 练习赛] 直角三角形 题目描述 输入格式 输出格式 输入输出样例 代码 P8833 [传智杯 #3 决赛] 课程 题目背景 题目描述 输入格式 输出格式…

vivado eFUSE 寄存器访问和编程

eFUSE 寄存器访问和编程 注释 : 在 MPSoC 和 Versal 器件上不支持以下 eFUSE 访问和编程方法。 7 系列、 UltraScale 和 UltraScale 器件具有一次性可编程位用于执行特定功能 , 称为 eFUSE 位。不同 eFUSE 位类型如 下所述: • …

突破校园网限速:使用 iKuai 多拨分流负载均衡 + Clash 代理(内网带宽限制通用)

文章目录 1. 简介2. iKuai 部署2.1 安装 VMware2.2 安装 iKuai(1) 下载固件(2) 安装 iKuai 虚拟机(3) 配置 iKuai 虚拟机(4) 配置 iKuai(5) 配置多拨分流 2.3 测试速度 3. Clash 部署3.1 准备工作(1) 配置磁盘分区(2) 安装 Docker(3) 安装 Clash(4) 设置代理 1. 简介 由于博主…

新质生产力丨zData X 数据库一体机助力财政一体化平台全面升级

在数字化转型的大潮中,某财政局积极响应国家财政管理现代化的战略部署,启动了财政一体化平台升级改造工程。该项目旨在将财政局内部各部门及其各自独立的业务系统进行全面整合,构建起一个集约化的财政管理平台,力求通过技术创新推…

字符分类函数

字符分类函数 C语言中有⼀系列的函数是专门做字符分类的,也就是⼀个字符是属于什么类型的字符的。这些函数的使用都需要包含⼀个头文件是 ctype.h 这些函数的使用方法非常类似,我们就讲解⼀个函数的事情,其他的非常类似: int i…

合同约定的绩效奖金说不给就不给了, 这合法吗?

目录 一、北京海淀法院参考案例 二、关于绩效奖金的性质? 三、绩效奖金应否发放取决于哪些因素? 四、员工如何举证与质证 五、提前离职的员工 是否享受当年度绩效奖金? 一、北京海淀法院参考案例 https://mp.weixin.qq.com/s/sq0mFCC8M…

在哪申请免费IP地址证书

IP证书,也被称为IP SSL证书,是一种特殊的SSL证书,不同于传统的域名验证(DV)证书,它是通过验证公网IP地址而不是域名来确保安全连接。这种证书是用于保护IP地址,并在安装后起到加密作用。 申请条…

数据结构算法题(力扣)——链表

以下题目建议大家先自己动手练习,再看题解代码。这里只提供一种做法,可能不是最优解。 1. 移除链表元素(OJ链接) 题目描述:给一个链表的头节点 head 和一个整数 val ,删除链表中所有满足值等于 val 的节点…

全面的Docker快速入门教程(详细)

前言: 都2024年了,你还在为了安装一个开发或者部署环境、软件而花费半天的时间吗?你还在解决开发环境能够正常访问,而发布测试环境无法正常访问的问题吗?你还在为持续集成和持续交付(CI / CD)工…