深度学习之自己制作数据集

1.将图片排序

 (1)视频中截取图片

每隔一秒截取视频并保存为图片,可以使用 OpenCV 库。下面是一个示例代码,它将视频中的每一秒保存为一张图片:

import cv2
import os

# 设置视频文件路径
video_path = r"D:\**\**.mp4"
output_folder = r"D:\**"

# 如果输出文件夹不存在,则创建
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# 打开视频文件
cap = cv2.VideoCapture(video_path)
if not cap.isOpened():
    print("无法打开视频文件。")
    exit()

# 获取视频的帧率
fps = int(cap.get(cv2.CAP_PROP_FPS))
print(f"视频帧率: {fps}")

# 计算每秒的帧数
frame_interval = fps

frame_count = 0
saved_image_count = 0

while cap.isOpened():
    ret, frame = cap.read()

    if not ret:
        print("视频读取结束或发生错误。")
        break

    # 仅保存每一秒的帧
    if frame_count % frame_interval == 0:
        saved_image_count += 1
        image_path = os.path.join(output_folder, f'image_{saved_image_count}.jpg')
        cv2.imwrite(image_path, frame)
        print(f"保存图片: {image_path}")

    frame_count += 1

# 释放视频捕获对象并关闭所有窗口
cap.release()
cv2.destroyAllWindows()

print("视频截取完成。")
(2)照片排序

我所需要的数据集网上没有,只能自己搜寻,搜集了1000张左右,格式和名字、大小并不统一。

在Python中编写一个脚本,在Visual Studio中运行,并处理文件夹中不同格式的照片(如 .jpg, .png, 等),按顺序将它们重命名为从 11000

import os

# 指定照片所在的文件夹路径
folder_path = "D:\\***\\***"

# 获取文件夹中所有文件的列表
file_list = os.listdir(folder_path)

# 过滤出照片文件(jpg和png)
photo_files = [f for f in file_list if f.endswith(('.jpg', '.jpeg', '.png'))]

# 按字母顺序排序文件
photo_files.sort()

# 遍历文件并重命名
for i, filename in enumerate(photo_files):
    # 获取文件扩展名
    file_extension = os.path.splitext(filename)[1]
    
    # 生成新的文件名,例如1.jpg, 2.png, ...
    new_name = f"{i + 1}{file_extension}"
    
    # 生成完整的旧文件路径和新文件路径
    old_path = os.path.join(folder_path, filename)
    new_path = os.path.join(folder_path, new_name)
    
    # 重命名文件
    os.rename(old_path, new_path)

    # 如果超出1000张图片,提前停止
    if i + 1 == 1000:
        break

print("over")

2.将图片的格式统一为jpg

使用 Python 的 PIL(Python Imaging Library)库,结合 os 库来批量处理这些图像文件。以下是示例代码,可以将所有 .jfif.png 等格式的图片转换为 .jpg 格式:

import os
from PIL import Image

# 指定照片所在的文件夹路径
folder_path = r"D:\***"  # 替换为你的文件夹路径

# 获取文件夹中所有文件的列表
file_list = os.listdir(folder_path)

# 遍历文件夹中的所有文件
for filename in file_list:
    # 获取文件扩展名
    file_extension = os.path.splitext(filename)[1].lower()

    # 检查文件是否为图像格式(jpg、jfif、png 等)
    if file_extension in ['.jpg', '.jpeg', '.jfif', '.png']:
        # 打开图像文件
        img = Image.open(os.path.join(folder_path, filename))

        # 将图像转换为RGB模式,以确保兼容性
        img = img.convert('RGB')

        # 生成新的文件名,统一为 jpg 格式
        new_filename = os.path.splitext(filename)[0] + '.jpg'

        # 保存图像为 jpg 格式
        img.save(os.path.join(folder_path, new_filename), 'JPEG')

        # 如果文件扩展名不是 jpg,则删除原文件
        if file_extension != '.jpg':
            os.remove(os.path.join(folder_path, filename))

print("所有图片已成功转换为 jpg 格式。")

3.使用labeling进行数据集标注

参考文章:https://www.cnblogs.com/qqsj/p/17492360.html 

LabelImg使用教程:为图像标注添加便利-百度开发者中心

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值