将数据集中的txt文件中的坐标转换为mask图像

# -*- coding: utf-8 -*-
# @Time:2021/10/13
# @Author:phe

import os
import cv2
import numpy as np

#读取path中对应的txt文件,并将txt文件中的坐标转换为mask图像,存入savepath路径中。
def txtToImg(path,savepath):
    files = []
    for file in os.listdir(path):
        if file.endswith(".txt"):
            files.append(path + "\\" + file)
            # print(file[:-4])     #每个txt的名称
            # print(type(files))     #list

    # file_abs 是每个txt文件的绝对路径
    for file_abs in files:
        print(file_abs)  # 每个txt文件的绝对路径
        print(file_abs[32:-4])  # 每个txt文件的名称
        # 按行读取txt文件
        f = open(file_abs)
        line = f.readline()  # 读出line是str类型
        # 生成一张512*512像素照片   其中背景全为1
        Img = np.ones((512, 512), dtype=np.uint8)
        # Img = Img * 255  # 使得背景全黑

        while line:
            str = line.strip('\n')  # 将每行结尾的\n删除
            list = str.split(',')  # 将str转换诶list
            results = np.array(list, np.int32)  # 将list转换为numpy.ndarray
            mask = results.reshape((-1, 1, 2))  # 对序列第一个数设置为x,第二个数设置为y,依次类推
            a = cv2.polylines(Img, [mask], True, 0)  # 将坐标点连接起来,线段颜色是0
            cv2.fillPoly(Img, [mask], color=0)  # 候选框中的范围用像素0填充

            filepath = savepath + "\\" + file_abs[32:-4] + ".jpg"
            cv2.imwrite(filepath, a)  # 将生成图片a存入路径。
            line = f.readline()
        f.close()

txtToImg(r"D:\PycharmProjects\task\all_gts",r"D:\PycharmProjects\task\mask")

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一蓑烟雨渡平生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值