语义分割标注labelme图片处理过程

过程(前提是labelme已经安装好)

1在终端输入:

2点击左侧Open Dir选择需要标注的数据文件夹

3制作图像分割的数据,选择多边形,点击左侧的 create polygons ,回到图片,按下鼠标左键会生成一个点,完成标注后会形成一个标注区域,同时弹出labelme的框,键入标签名字,点击 OK或者回车完成标注。

4标注完成后,点击save保存成同名的.json文件,然后在终端输入以下语句(具体来说,在激活labelme的环境下,进入labelme_json_to_dataset.exe所在文件夹,将需要操作的json文件都放入该路径下,然后输入python labelme_json_to_dataset.exe 文件名.json,就OK了。):

  会生成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_)

为了防止自己再次忘记,所以把过程写下来,我写的这个是按着自己的情况来的,仅供参考,不具有普遍性。

 

原文地址:https://www.cnblogs.com/loyolh/p/12222305.html