EIseg 的JSON 转其他mask颜色

本文介绍了一种方法,用于将EIseg生成的JSON文件转换为特定颜色的mask图像。此过程涉及读取JSON文件中的多边形信息,并将其绘制到空白图像上,最终输出彩色的mask图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EIseg 的JSON 转其他mask颜色
【非必要】

# -*- coding: utf-8 -*-
from genericpath import isfile
import json
import cv2
import numpy as np
import os

def cvt_one(json_path, img_path, save_path, label_color):
    # 加载json 和 图片原图
    data = json.load(open(json_path, encoding='gbk'))
    img = cv2.imread(img_path)
    img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 图片二值化

    # get background data
    img_h = img.shape[0]
    img_w = img.shape[1]
    # 生产图片大小图片
    points_bg = [(0, 0), (0, img_h), (img_w, img_h), (img_w, 0)]
    img = cv2.fillPoly(img, [np.array(points_bg)], 0)
    # 将多边形坐标绘制到图片中
    for item in data:
        className = item.get("name")
        points = item.get("points")
        img = cv2.fillPoly(img, [np.array(points, dtype=int)], label_color[className])
    cv2.imwrite(save_path, img)



if __name__ == '__main__':
    
    img_path_all = os.listdir('img_ori')
    print(img_path_all)
    print(len(img_path_all))
    

    for i_img in range(len(img_path_all)):  
        print(i_img)
        img_path  =  os.path.join( 'img_ori', img_path_all[i_img] )
        json_path =  os.path.join( 'label', img_path_all[i_img].split('.')[0] + '.json' )
        
        if not os.path.exists(json_path):
            print( '缺少图片编号JSON: %s'% (json_path) )
            continue     
        
        
        Save_Floder = 'VOC_png'
        if not os.path.isdir(Save_Floder):
            os.makedirs(Save_Floder) 

        # 保存路径 
        save_path =  os.path.join( Save_Floder, img_path_all[i_img].split('.')[0] + '.png' )
        label_color = {  
            'pitaya': [128, 128, 0] 
        }   
    
        cvt_one(json_path, img_path, save_path, label_color)  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值