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.mzph.cn/news/790430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UR SIM

详细Ubuntu 22.04 配置最新UR机械臂仿真环境(ros2-humble, ur-sim, ur-ros2-driver) ur_robot_driver官方教程-UR仿真器部分 Setup URSim with Docker universalrobots/ursim_cb3 - Docker Image | Docker Hub UR5机器人学习之TCP/IP通讯 使用Docker设置URSim 设置自己的 …

github 多个账号共享ssh key 的设置方法

确认本机是否已有ssh key 首先确认自己系统内有没有 ssh key。 bash复制代码cd ~/.ssh ls *.pub # 列出所有公钥文件id_rsa.pub若有,确认使用当前 key 或者生成新 key,若没有,生成新 key。由于我需要登录两个帐号,所以在已经存在…

uni-app自定义导航栏下拉刷新实现

【z-paging下拉刷新、上拉加载】高性能,全平台兼容。支持虚拟列表,分页全自动处理 - DCloud 插件市场 先记录一个插件,后续更新

【WPF应用31】WPF基本控件-ListView的详解与示例

WPF(Windows Presentation Foundation)是.NET框架的一个组成部分,它用于构建桌面应用程序的用户界面。ListView是WPF中一个非常强大的数据展示控件,它可以用来显示一系列的项,类似于Windows资源管理器中的文件列表。Li…

MyBatis动态SQL--where 标签

在上一章中的介绍if 标签时,其实我们发现了一个问题,就是当所有条件都为空时,sql语句会多出来一个where,而且有时候会多出来一个and等等。 而where标签的作用就是为了解决这类问题,where 标签可以自动去除多余的where…

Java基础 - 10 - File、IO流(一)

File:代表文本 IO流:读写数据 一. File File是java.io.包下的类,File类的对象,用于代表当前操作系统的文件(可以是文件或文件夹) 注意:File类只能对文件本身进行操作,不能读写文件里…

区块链技术的基本概念学习

1.去中心化 去中心化就是你我之间转账,不依赖于银行或支付处理公司。 2.区块链网络 区块链网络是由分布在全球的节点组成,每个节点都有完整的区块链副本。 3.区块 区块就是区块链中的的一个块,这个块里面包含了很多信息,如交…

搜维尔科技:TechViz 虚拟现实在工业项目中沉浸式体验

TechViz虚拟现实在工业项目中沉浸式体验 搜维尔科技:TechViz 虚拟现实在工业项目中沉浸式体验

Deepface Lab2.0参数选取建议

制作非常基本和低质量/分辨率的 Deepfakes 的最低要求: - 支持 AVX 和 SSE 指令的现代 4 核 CPU - 16GB RAM - 具有 8GB VRAM 的现代 Nvidia 或 AMD GPU - 充足的存储空间和大页面文件 确保启用硬件-加速 Windows 10/11 下的 GPU 调度并确保您的 GPU 驱动程序是最新…

MyBatis动态SQL--if 标签

mybatis动态sql对我们来说是非常常见的,比如在下面这样一个场景中, 我们需要多条件查询,但是查询的条件又不是固定的,是可以动态改变的,那我们就需要用到动态sql去完成。 动态SQL之 if 标签 接下来我们介绍第一个动态…

Day43 动态规划 part05

Day43 动态规划 part05 1049.最后一块石头的重量II 我的思路: 提示说和划分两个和相等的子集差不多,猛然想到,这道题不就是划分子集,用sum - 和最大*2 代码就是划分和相同的子集的变形 解答: class Solution {public int last…

【JavaScript】函数 ⑥ ( 使用 arguments 获取所有实参 | arguments 内置对象 | 伪数组概念 )

文章目录 一、使用 arguments 获取所有实参1、arguments 内置对象2、伪数组概念3、arguments 实参遍历4、arguments 代码示例 - 基本使用5、arguments 代码示例 - 遍历实参 一、使用 arguments 获取所有实参 1、arguments 内置对象 在 定义 JavaScript 函数 时 , 有时 不确定 形…

使用LangChain编写图检索查询实现RAG

大家好,检索增强生成(Retrieval-Augmented Generation,简称RAG)是一种先进的人工智能技术,通过整合大型语言模型(LLM)的内部知识和外部权威数据源,来提升生成式AI模型的表现。 本文…

安全可靠!麒麟信安操作系统各版本均不受liblzma/xz漏洞影响!

近日,XZ Utils 5.6.0和5.6.1版本存在严重后门风险的消息披露后,麒麟信安立即展开全面排查,经分析验证,麒麟信安操作系统各版本均不受liblzma/xz漏洞影响。 关于liblzma/xz漏洞 漏洞描述 xz 5.6.0 与 5.6.1 版本的上游代码中发现…

ComplexHeatmap绘图:注释、图例、热图基础(自备)

目录 基础介绍 Heatmap绘图基础参数 数据 作图参数 Heatmap Annotations(注释) 基础注释设置 简单注释测试 anno_points散点注释 anno_lines连线注释 anno_barplot条形图 anno_boxplot箱线图 anno_histogram直方图 热图组合 基础组合 进行…

【热门话题】文言一心与ChatGPT-4:一场跨时代智能对话系统的深度比较

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 文言一心与ChatGPT-4:一场跨时代智能对话系统的深度比较一、技术背景…

Maven--lib分离的打包方式

就是把lib包和source源码分开打包。优势就是,面对频繁更新的应用场景时,可以只更新源码包(当然,前提是你的依赖没有增减)。尤其是使用jenkins更新项目时,会省去很多时间吧? 不同项目的 lib之间不…

SQL语句生成器,支持MSSQL/MYSQL/SQLITE/ACCESS/EXCEL

经过7个月的艰苦开发,SQL语句生成器终于和各位见面了,因为工程量浩大,一度做到崩溃,差点烂尾,好在经过N次激烈思想斗争后还是坚持了下来累累累累累累累 本软件能够自动生成SQL语句及对应的易语言代码,还有相…

Golang vs Java

目录 前言 一、语言背景与特性 二、性能与效率 三、生态系统与库支持 四、开发体验与工具支持 五、微服务架构设计中的对比 六、总结与建议 前言 在当今的软件开发世界中,选择合适的编程语言对于项目的成功至关重要。GoLang(也称为Golang&#x…

java入门第1课

最近想要入门一下java,目标很简单,就是学习Java的基本语法,内置数据结构;至于数据库啥的往后再说。由于是入门,所以就没有太难的东西,全都是基本的,还要个人吐槽,如果有错误的观点&a…