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!")

视频成帧和数据标注

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
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")

删除不匹配的文件

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.mzph.cn/diannao/1073.shtml

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

相关文章

微信域名防封/QQ域名防封/域名状态检测/域名防红防封API平台源码

下载地址:API平台源码 这套源码是使用thinkphp3.1.3开发的,可以在PHP5.3-5.6下运行,程序是有一点老了,但是思路仍在!然后,这套源码我已经成功搭建起来了,后台、个人(用户&#xff0…

在瑞芯微RV1126 Linux系统上调试WiFi的详细指南

目录标题 1. **系统和环境准备**2. **检查WiFi设备状态**3. **启用和禁用WiFi接口**4. **扫描可用的WiFi网络**5. **连接到WiFi网络**6. **查看当前的WiFi连接状态**7. **断开和重新连接WiFi**8. **管理WiFi网络配置**9. **使用iw工具进行高级WiFi调试**10. **故障排除和日志获…

算法训练营day16

一、二叉树的最大深度 递归解法 后序遍历(DFS) class Solution {public int maxDepth(TreeNode root) {if (root null) return 0;return Math.max(maxDepth(root.left), maxDepth(root.right)) 1;} }算法解析: 终止条件: 当 root 为空,…

力扣---填充每个节点的下一个右侧节点指针 II

给定一个二叉树: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。 初始状态下,所有 next 指针都…

牛x之路 - Day1

Day1 微积分之屠龙宝刀(武林秘籍) 之前的一些东西都在pdf上记得笔记, 没有在这个上面展示一遍,只好学到相关内容的时候再提叙啦;所以其实再写这个小记的时候,我已经看了一半的书,但是不要紧&am…

nodejs npm 常用的命令

大家好,我是资深前端之路,以下是自己对npm命令的回顾梳理。喜欢的朋友记得点赞关注收藏哟! npm npm init :生成package.json文件。 npm -v:查看npm版本号。 npm i:下载对应的文件包。npm i 下载包名版本号,可以下载制定的版本…

IntelliJ IDEA运行发布传统Java Web Application项目

接 重温8年前项目部署 要求,如何改用IntelliJ IDEA运行发布传统 Java Web Application项目呢,简述步骤如下: 一、下载源码 源码:https://github.com/wysheng/kindergarten 下载后的本地项目路径:/Users/songjianyon…

《Python源码剖析》之对象的基石---PyObject

前言 在python的源代码中,PyObject的结构体定义如下,它的内容看起来很简单,只有3项,分别是:_PyObject_HEAD_EXTRA,ob_refcnt和ob_type,其中_PyObject_HEAD_EXTRA是用于指向活动堆的指针&#x…

学习大数据,所需要的linux基础(1)

文章目录 linux入门概述Linux和Windows的区别CentOS下载地址 Linux文件与目录结构Linux文件Linux目录结构 VI/VIM编辑器vi/vim是什么测试数据集准备一般模式编辑模式指令模式模式间转换 网络配置和系统管理操作查看网络IP和网关配置网络和ip地址ifconfig配置网络接口修改ip地址…

吉林教育报社投稿信箱投稿邮箱

吉林教育杂志社投稿信箱 产品说明 《吉林教育》 编辑在线咨询QQ:2648025923 编辑在线咨询QQ: 2958409081 编辑在线咨询QQ: 2734638650 编辑咨询电话:18366155179 编辑咨询电话:18366155179 吉林教育投稿信…

使用Python进行自动化测试

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 如何使用Python进行自动化测试:测试框架的选择与应用 自动化测试是软件开发过程…

curlftpfs和fusermount

curlftpfs 是一种 Linux 系统下用来将 FTP 服务器挂载为文件系统的工具,这意味着可以通过本地目录来访问和操作 FTP 服务器上的文件。 挂载FTP服务器到本地系统 为了挂载FTP服务器到本地系统中,使用curlftpfs工具,可以按照以下格式书写命令…

C++知识点总结(30):递归进阶练习

递归进阶练习 一、 2 2 2 的幂数1. 审题2. 参考答案2.1 递归2.2 循环 二、汉诺塔移动次数1. 审题2. 思路3. 参考答案 三、数字乘积分解1. 审题2. 参考答案 四、数字重复分解1. 审题2. 参考答案 五、烤鸡调料1. 审题2. 参考答案 一、 2 2 2 的幂数 1. 审题 如果这个整数是由若…

保姆级教程!QRCNN-BiLSTM一键实现多变量回归区间预测!区间预测全家桶再更新!

​ 声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 今天对我们之前推出的区间预测全家桶进行…

进程间通信IPC(二)

一、存储映射I/O(Memory-mapped I/O) 使一个磁盘文件与存储空间中的一个缓冲区相映射。于是从缓冲区中取数据,就相当于读文件中的相应字节。与此类似,将数据存入缓冲区,则相应的字节就自动写入文件。这样,就可在不使用read和write…

由于找不到msvcp110d.dll,无法继续执行代码

在计算机软件开发和运行环境中,动态链接库(DLL)文件扮演着至关重要的角色。它们封装了特定功能的代码,使得多个应用程序能够共享这些功能而无需重复编译或加载相同的代码,从而显著提升了系统资源利用率和软件开发效率。…

024——驱动、server、client、GUI全功能联调

目录 一、本次修改 二、GUI和Client之间联调 2.1 工程结构修改 2.2 将TCP程序修改为可被其它程序调用 2.3 优化显示界面 2.4 解决GUI通过tcp send的问题 2.5 处理服务器数据 时间不是很多了,我想压缩一下快点把属于毕设的这部分搞完,俺要出去旅游…

【HTML】H5新增元素记录

H5 新增元素特性 1. 语义化标签 语义化标签的好处: 对于浏览器来说,标签不够语义化对于搜索引擎来说,不利于SEO的优化 语义化标签: header:头部元素nav:导航section:定义文档某个区域的元素article:内容元素aside…

解锁多智能体路径规划新境界:结合启发式搜索提升ML本地策略

引言:多智能体路径寻找(MAPF)问题的重要性与挑战 在现代自动化和机器人技术迅速发展的背景下,多智能体路径寻找(Multi-agent path finding,简称MAPF)问题的研究变得日益重要。MAPF问题涉及为一…

【NTN 卫星通信】NTN的SSB波束探讨

1 概述 SSB是同步广播信道,用于小区搜索,主系统消息的发送。NR协议中定义了多种SSB波束格式,简述如下。   小区搜索是终端获取与小区的时间和频率同步并检测小区的物理层小区ID的过程。   为了进行小区搜索,UE接收以下同步信号…