语义分割标注labelme图片处理过程
Posted loyolh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了语义分割标注labelme图片处理过程相关的知识,希望对你有一定的参考价值。
过程(前提是labelme已经安装好):
1在终端输入:
2点击左侧Open Dir选择需要标注的数据文件夹。
3制作图像分割的数据,选择多边形,点击左侧的 create polygons ,回到图片,按下鼠标左键会生成一个点,完成标注后会形成一个标注区域,同时弹出labelme的框,键入标签名字,点击 OK或者回车完成标注。
4标注完成后,点击save保存成同名的.json文件,然后在终端输入:
会生成json文件夹,里面有五个文件,其中label.png和info.yaml使我们需要的
5图片变化的过程:
merge.py
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import cv2 import gdal input_file_path = "mayd.tif" output_file_path = "mayd_new.png" dataset = gdal.Open(input_file_path) im_width = dataset.RasterXSize im_height = dataset.RasterYSize im_bands = dataset.RasterCount im = dataset.ReadAsArray(0,0,im_width,im_height) print("before merge:",im.shape) b = im[0,:,:] g = im[1,:,:] r = im[2,:,:] merged = cv2.merge([b,g,r]) print("after merge:",merged.shape) cv2.imwrite(output_file_path,merged)
whi_bla.py文件
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import cv2 import numpy as np def whi_bla(color,img): print(img.shape) img_ = np.zeros([img.shape[0],img.shape[1]]) for i in range(img.shape[0]): for j in range(img.shape[1]): if img[i,j,0]==color[0] and img[i,j,1]==color[1] and img[i,j,2]==color[2]: img_[i,j]=255 else: img_[i,j]=0 print(i,‘ is ok‘) return img_ if __name__=="__main__": img = cv2.imread("label7.png") print(img.shape) color = [0,0,128] #根据具体的图像设置color的值,bgr img_ = whi_bla(color,img) print(img_.shape) cv2.imwrite("7_0.png",img_)
为了防止自己再次忘记,所以把过程写下来,我写的这个是按着自己的情况来的,仅供参考,不具有普遍性。
以上是关于语义分割标注labelme图片处理过程的主要内容,如果未能解决你的问题,请参考以下文章
图像语义分割标注工具labelme制作自己的数据集用于mask-rcnn训练
图像语义分割标注工具labelme制作自己的数据集用于mask-rcnn训练