python应用

news/2025/3/15 5:19:27/

划分数据集

将数据集划分为训练集和测试集

python">import os  
import shutil  
import random  # 数据集路径
images_dir = './images'  
targets_dir = './gt'  # 划分后的路径
train_images_dir = './train/images'
test_images_dir = './test/images'
train_targets_dir = './train/gt'
test_targets_dir = './test/gt'os.makedirs(train_images_dir, exist_ok=True)  
os.makedirs(test_images_dir, exist_ok=True)  
os.makedirs(train_targets_dir, exist_ok=True)  
os.makedirs(test_targets_dir, exist_ok=True)  image_files = [f for f in os.listdir(images_dir) if os.path.isfile(os.path.join(images_dir, f))]  
target_files = [f for f in os.listdir(targets_dir) if os.path.isfile(os.path.join(targets_dir, f))]  train_ratio = 0.8  
test_ratio = 1 - train_ratio  combined = list(zip(image_files, target_files))  
random.shuffle(combined)  
image_files, target_files = zip(*combined)  train_size = int(len(image_files) * train_ratio)  
test_size = len(image_files) - train_size  
train_images, test_images = image_files[:train_size], image_files[train_size:]  
train_targets, test_targets = target_files[:train_size], target_files[train_size:]  for img, tgt in zip(train_images, train_targets):  shutil.copy(os.path.join(images_dir, img), os.path.join(train_images_dir, img))  shutil.copy(os.path.join(targets_dir, tgt), os.path.join(train_targets_dir, tgt))  for img, tgt in zip(test_images, test_targets):  shutil.copy(os.path.join(images_dir, img), os.path.join(test_images_dir, img))  shutil.copy(os.path.join(targets_dir, tgt), os.path.join(test_targets_dir, tgt))  print("Training and test sets have been created successfully!")

视频成帧和数据标注

python">import imageiofilename = "./original.MP4"
vid = imageio.get_reader(filename, 'ffmpeg')try:for num, im in enumerate(vid):if (num / 50) and (num % 50) == 0:    # 控制图像的输出张数;print(num // 50)imageio.imwrite('./jpg/{}.jpg'.format(num // 50), im)else:continue
except imageio.core.format.CannotReadFrameError or RuntimeError:pass
python">import cv2
import os"""
This code is used to:
1)对图片进行标注
2)生成对应的包含坐标信息的.txt文件
"""imgs_path = "./jpg/"
txt_path = "./label/"
files = os.listdir(imgs_path)
img = 0
coordinates = []def on_EVENT_LBUTTONDOWN(event, x, y, flags, param):if event == cv2.EVENT_LBUTTONDOWN:cv2.circle(img, (x, y), 4, (0, 255, 0), thickness=-1)coordinates.append([x, y])print([x,y])cv2.imshow("image", img)for file in files:  # for i in range(80, len(files)):coordinates = []img = cv2.imread(imgs_path+file)cv2.namedWindow("image")cv2.setMouseCallback("image", on_EVENT_LBUTTONDOWN)cv2.imshow("image", img)cv2.waitKey(0)with open(txt_path+file.replace("jpg","txt"), "w+") as f:for coor in coordinates:f.write(str(coor[0])+" "+str(coor[1])+"\n")    # 记录每个人头的坐标点# f.write(str(len(coordinates)))                   # 记录一张图像中的人头总数print(file+" is ok !"+"\n")

删除不匹配的文件

python">import osimg_folder = ".\\images"
txt_folder = ".\\gt"img_files = [f for f in os.listdir(img_folder) if f.endswith(".jpg")]
txt_files = [f for f in os.listdir(txt_folder) if f.endswith(".txt")]
img_file_names = [os.path.splitext(f)[0] for f in img_files]
for txt_file in txt_files:if os.path.splitext(txt_file)[0] not in img_file_names:os.remove(os.path.join(txt_folder, txt_file))print(f"Deleted {txt_file}")

http://www.ppmy.cn/news/1426813.html

相关文章

Jackson 2.x 系列【25】Spring Boot 集成之起步依赖、自动配置

有道无术,术尚可求,有术无道,止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址:https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 前言2. 起步依赖3. 自动配置3.1 JacksonPrope…

软考139-上午题-【软件工程】-软件容错技术

一、软件容错技术 提高软件质量和可靠性的技术大致可分为两类,一类是避开错误,即在开发的过程中不让差错潜入软件的技术;另一类是容错技术,即对某些无法避开的差错,使其影响减至最小的技术。 1-1、容错软件的定义 归…

2024 年江苏省职业院校技能大赛“区块链技术应用” 赛项赛卷(样卷)运维题解析一

运维题 环境: ubuntu20 fisco 2.8.0 前言 准备两台机子,并且可以能相互pin通 192.168.19.133 [M1-A] 192.168.19.137 [M2-B] 子任务 1-2-1: 搭建区块链系统并验证 基于给定服务器环境以及软件,搭建一条双机 1 机构 8 节点 1 群组的区块 链系统(默认端口开始[30300,2020…

算法刷题记录 Day49

算法刷题记录 Day49 Date: 2024.04.17 lc 5. 最长回文子串 class Solution { public:string longestPalindrome(string s) {// 1. dp. dp[i][j]表示s[i:j]是否是回文子串。// dp[i][j] s[i] s[j] && dp[i1][j-1];int n s.size();vector<vector<bool>>…

【iOS】—— SDWebImage源码学习(1)(未完)

iOS】—— SDWebImage源码学习 SDWebImage基础使用主要功能获取图片缓存缓存机制 SDWebImage SDWebImage具有缓存支持的异步映像下载程序。并添加了像UI元素分类类UIImageView、UIButton、MKAnnotationView&#xff0c;可以直接为这些UI元素添加图片。 基础使用 在日常的使用中…

04 JavaScript学习:输出

JavaScript 没有任何打印或者输出的函数。 JavaScript 显示数据 JavaScript 可以通过不同的方式来输出数据&#xff1a; 使用 window.alert() 弹出警告框。使用 document.write() 方法将内容写到 HTML 文档中。使用 innerHTML 写入到 HTML 元素。使用 console.log() 写入到浏…

研究三门问题以及更多门问题换门概率

import randomdef play(n,change):door [i for i in range(0,n)] # 0-n-1代表 n 个门has_car [0 for _ in range(0,n)]# 生成一个答案true_answer random.choice(door)has_car[true_answer] 1# 获取参赛者的答案your_answer random.choice(door)if has_car[your_answer]…

docker-002常用命令

启动类命令 启动systemctl start docker停止systemctl stop docker重启systemctl restart docker查看状态systemctl status docker开机启动systemctl enable docker概要docker info总体帮助文档docker --help命令帮助文档docker 具体命令 --help镜像命令 查看主机上的镜像 命令…