• 语义分割标注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_)

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

     

  • 相关阅读:
    iOS开发数据库篇—FMDB简单介绍
    SQLite简单介绍
    iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
    使用Block在两个界面之间传值
    ios NSURLSession使用说明及后台工作流程分析
    iOS archiveRootObject 归档失败问题
    iOS开发UI篇—ios应用数据存储方式(归档)
    iOS archive(归档)
    CoreData数据库升级
    iOS开发过程中使用Core Data应避免的十个错误
  • 原文地址:https://www.cnblogs.com/loyolh/p/12222305.html
Copyright © 2020-2023  润新知