利用txt标签文件制作分割或检测网络的掩码模板(python)

实现的效果如下图所示,将txt标签文件转化为掩码模板。需要注意的是,我写的保存的掩码模板和图像的名称一样,你如果觉得不合适可以修改。

利用txt标签文件制作分割或检测网络的掩码模板(python)_第1张图片

需要修改对应的,图像地址、txt掩码文件地址以及你想保存的掩码地址。

img_dir = r'../DRIONS-DB/DRIONS-DB/images'
txt_mask = r'../DRIONS-DB/DRIONS-DB/experts_anotation'
mask_save_path = r'../DRIONS-DB/DRIONS-DB/labels'
# coding:utf8

import os
import cv2
import numpy as np
from tqdm import tqdm

img_dir = r'../DRIONS-DB/DRIONS-DB/images'
txt_mask = r'../DRIONS-DB/DRIONS-DB/experts_anotation'
mask_save_path = r'../DRIONS-DB/DRIONS-DB/labels'


def visualize_txt(image_name, label_name, name):

    with open(label_name, "r") as file:
        lines = file.readlines()

    # 创建一个空白图像
    img = cv2.imread(image_name)
    height, width = img.shape[:2]

    mask = np.zeros((height, width), dtype=np.uint8)
    points = [(int(float(point.split(',')[0])), int(float(point.split(',')[1]))) for point in lines]
    cv2.fillPoly(mask, [np.array(points)], color=255)

    # # 显示或保存掩码
    # cv2.imshow("Mask", mask)
    # cv2.waitKey(0)
    # cv2.destroyAllWindows()

    # 如果需要保存为图像文件
    save_path = os.path.join(mask_save_path, name.split('.')[0] + '.png')
    cv2.imwrite(save_path, mask)


if __name__ == '__main__':
    img_list = os.listdir(img_dir)
    label_list = os.listdir(txt_mask)

    for i, j in enumerate(tqdm(img_list)):
        visualize_txt(os.path.join(img_dir, img_list[i]), os.path.join(txt_mask, label_list[i]), img_list[i])


你可能感兴趣的:(python,深度学习,图像处理,计算机视觉,人工智能,opencv)