主页 > 创业  > 

python+halcon解读labelme标注生成marksimage

python+halcon解读labelme标注生成marksimage
这一段代码封装了一个类,需要传统一个图片和标注后json文件所在的地址,标注的选项是polygon,主要是用于unet深度学习网络 在初始化时需要输入文件(image+jeson)路径,多分类任务的label_list。会在项目目录下生成一个test_images文件夹,和marks_folder的文件夹 marks_image的制作使用halcon完成的,方便后期自己项目使用。欢迎交流 import os import numpy as np import halcon as ha import json import shutil from qtconsole.mainwindow import background ###逻辑是这样的 # 初始化时 输入 labelme标注的文件夹目录,和 类别列表 # 在项目目录下生成两个文件夹,一个是test_images, 一个是对应的marks_folder也就是标签图片 class gen_marks_image(): def __init__(self,path,label_list): #初始化时,需传入文件的路径 self.path = path self.label_list = label_list def get_list_in_path(self): name_files = os.listdir(self.path) json_files = [] for name in name_files: if name.endswith('.json'): json_files.append(os.path.join(self.path, name)) return json_files def create_folder(self,json_files): image_folders = "test_images" marks_folder = "marks_folder" if not os.path.exists(image_folders): os.mkdir(marks_folder) if not os.path.exists(marks_folder): os.mkdir(marks_folder) for json_1 in json_files: json_name=os.path.split(json_1)[-1] image_path = os.path.join(self.path, json_name.replace('.json','.jpg')) shutil.copy(image_path, image_folders) #完成了对itest_image向test_images文件夹的复制 ###根据原图生成以0填充的灰度图 image00=ha.read_image(image_path) width,height =ha.get_image_size(image00) image_marks0 = ha.gen_image_const("byte",int(width[0]),int(height[0])) ###开始绘制marks_image图 with open(json_1,"r") as f: json_data = json.load(f) print(json_data["shapes"]) for shape in json_data["shapes"]: label0 =shape["label"] ####在这里我们输入一个label的list列表,如果是多分类的话,通过label在label_list中的位置定义它的灰度值 gray =self.label_list.index(label0) #car对应1,dog对应2 作为他们的灰度值 ####在这里开始绘制区域 points = shape["points"] row_points=[] col_points=[] for point in points: #这里注意lableme的x——对halcon的column row_points.append(int(point[1])) col_points.append(int(point[0])) print(row_points,col_points) #在这里要注意,polygon的首尾要接上。 row_points.append(row_points[0]) col_points.append(col_points[0]) region = ha.gen_region_polygon(row_points,col_points) print(gray) image_marks0 = ha.paint_region(region,image_marks0,gray,'fill') ha.write_image(image_marks0,'jpg',0,marks_folder+"/"+json_name.replace('.json','.jpg')) def forward(self): json_files = self.get_list_in_path() print(json_files) self.create_folder(json_files) #使用过程其实很简单 if __name__ == '__main__': path = r'C:\Users\Administrator\Desktop\test_image' label_list = ['back', 'car', 'dog', 'cat'] gen_marks_image(path,label_list).forward()
标签:

python+halcon解读labelme标注生成marksimage由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“python+halcon解读labelme标注生成marksimage