博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
任意四边形坐标标记格式txt文件转labelme标记的json格式文件
阅读量:4106 次
发布时间:2019-05-25

本文共 2054 字,大约阅读时间需要 6 分钟。

1.任意四边形坐标标记格式:tl_x,tl_y,tr_x,tr_y,br_x,br_y,bl_x,bl_y。从左上点开始顺时针旋转的四个顶点的坐标

2.转换代码:

import jsonimport base64from PIL import Imageimport ioimport osimport cv2import numpy as npdef generate_json(file_dir,file_name):    str_json = {}    shapes = []    # 读取坐标    fr = open(os.path.join(file_dir, file_name))    for line in fr.readlines():  # 逐行读取,滤除空格等        lineArr = line.strip().split(', ')        points = []        points.append([float(lineArr[0]),float(lineArr[1])])        points.append([float(lineArr[2]),float(lineArr[3])])        points.append([float(lineArr[4]),float(lineArr[5])])        points.append([float(lineArr[6]),float(lineArr[7])])        print(points)        shape = {}        shape["label"] = "plate_1"        shape["points"] = points        shape["line_color"] = []        shape["fill_color"] = []        shape["flags"] = {}        shapes.append(shape)    str_json["version"] = "3.14.1"    str_json["flags"] = {}    str_json["shapes"] = shapes    str_json["lineColor"] = [0, 255, 0, 128]    str_json["fillColor"] = [255, 0, 0, 128]    picture_basename = file_name.replace('.txt', '.jpg')    str_json["imagePath"] = picture_basename    img = cv2.imread(os.path.join(file_dir, picture_basename))    str_json["imageHeight"] = img.shape[0]    str_json["imageWidth"] = img.shape[1]    str_json["imageData"] = base64encode_img(os.path.join(file_dir, picture_basename))    return str_jsondef base64encode_img(image_path):    src_image = Image.open(image_path)    output_buffer = io.BytesIO()    src_image.save(output_buffer, format='JPEG')    byte_data = output_buffer.getvalue()    base64_str = base64.b64encode(byte_data).decode('utf-8')    return base64_strfile_dir = "C:\\txt_to_json"file_name_list = [file_name for file_name in os.listdir(file_dir) \						  if file_name.lower().endswith('txt')]for file_name in file_name_list:	str_json = generate_json(file_dir,file_name)	json_data = json.dumps(str_json)	jsonfile_name = file_name.replace(".txt",".json")	f = open(os.path.join(file_dir, jsonfile_name), 'w')	f.write(json_data)	f.close()

 

转载地址:http://kxssi.baihongyu.com/

你可能感兴趣的文章
HTTP协议顺带DNS,TCP/IP
查看>>
求两个数组交集
查看>>
iOS之AFNetworking
查看>>
iOS之AFNetworking
查看>>
iOS之二维码扫描
查看>>
iOS之NSURLConnection
查看>>
iOS之AFNetworking3.0
查看>>
Leetcode Next Permutation
查看>>
leetcode Trapping Rain Water
查看>>
英才网编程
查看>>
名企与iOS第三方框架
查看>>
iOS REST服务
查看>>
iOS 再说缓存
查看>>
leetcode Valid Number
查看>>
IP 回顾
查看>>
SDL显示图像和文字
查看>>
面向对象的三大特征
查看>>
MFC框架程序中OnIdle
查看>>
代码编译过程
查看>>
函数调用规范
查看>>