保存文件夹下面的所有.txt文件全路径到文本文件中 yolo

# -*- coding: utf-8 -*-
import time
import os
import shutil
import string
 
def readFilename(path, allfile):
    filelist = os.listdir(path)
 
    for filename in filelist:
        filepath = os.path.join(path, filename)
        if os.path.isdir(filepath):
            readFilename(filepath, allfile)
        else:
            allfile.append(filepath)
    return allfile
 
 
if __name__ == '__main__':
    path1 = "/home/zjh/pzy/ship_detect/datasets/train2019"
    allfile1 = []
    allfile1 = readFilename(path1, allfile1)
    allname1 = []
    txtpath = "/home/zjh/pzy/ship_detect/train_coco_2019.txt"
    for name in allfile1:
        file_cls = name.split("/")[-1].split(".")[-1]
        if file_cls == 'txt':
 
            with open(txtpath, 'a+') as fp:
                fp.write("".join(name) + "\n")

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个示例代码,用于使用 Python 实现读取文件夹的图片,将水印图片随机打在图片上,并保存打上水印后的图片到同一文件夹,同时将水印位置保存YOLO 格式的 txt 文件,每个图片的 txt 文件单独保存,所有图片的 txt 文件保存在同一个文件: ```python import cv2 import random import os def add_watermark(image, watermark_text): # 选择字体、字号、字体厚度等参数 font = cv2.FONT_HERSHEY_SIMPLEX font_scale = 1 font_thickness = 2 # 获取文字的大小 text_size, _ = cv2.getTextSize(watermark_text, font, font_scale, font_thickness) # 随机生成水印的位置 x = random.randint(0, image.shape[1] - text_size[0] - 10) y = random.randint(text_size[1] + 10, image.shape[0] - 10) # 在图片上添加水印 cv2.putText(image, watermark_text, (x, y), font, font_scale, (0, 0, 255), font_thickness) return (x, y) def save_yolo_format_txt(image_path, watermark_position): # 获取图片文件名(不包含路径和扩展名) image_name = os.path.splitext(os.path.basename(image_path))[0] # YOLO 格式的水印位置 x_center = watermark_position[0] + watermark_position[2] / 2 y_center = watermark_position[1] + watermark_position[3] / 2 width = watermark_position[2] height = watermark_position[3] # 保存水印位置到 YOLO 格式的文本文件 save_txt_path = f'{image_name}.txt' with open(save_txt_path, 'w') as f: f.write(f'0 {x_center} {y_center} {width} {height}') # 图片文件夹路径 folder_path = 'images_folder' # 水印图片路径 watermark_path = 'watermark.png' # 读取水印图片 watermark_image = cv2.imread(watermark_path) # 遍历文件夹的图片 for filename in os.listdir(folder_path): if filename.endswith('.jpg') or filename.endswith('.png'): # 图片路径 image_path = os.path.join(folder_path, filename) # 读取图片 image = cv2.imread(image_path) # 添加水印并保存水印位置 watermark_position = add_watermark(image, watermark_image) # 保存带有水印的图片 save_image_path = os.path.join(folder_path, f'watermarked_{filename}') cv2.imwrite(save_image_path, image) # 保存水印位置到 YOLO 格式的文本文件 save_yolo_format_txt(image_path, watermark_position) ``` 请确保您将代码的 `images_folder` 替换为包含要处理图片的文件夹路径,并将 `watermark.png` 替换为您的水印图片的路径。代码将遍历文件夹的所有图片,并将水印添加到每张图片上,同时保存带有水印的图片和水印位置的 YOLO 格式的 txt 文件。每张图片的 txt 文件将与对应的图片文件同名,并保存在同一文件夹

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值