python多分类分割网络DeeplabV3+ label标签按顺序分类

在只有label图片,没有json文件的情况下制作voc2007格式的SegmentationClass。

要求的label格式是8bit,从0开始递增计数的类别标签。比如说三分类问题标签为(0,1,2),而原始label的像素值为(0,100,255),本脚本目标是快速将(0,100,255)映射至(0,1,2)。

import os
import cv2
import numpy as np
bacepath = '/DeepLabV3Plus-Pytorch-master/datasets/data/VOCdevkit/VOC20071/SegmentationClass0/'
savepath = '/DeepLabV3Plus-Pytorch-master/datasets/data/VOCdevkit/VOC20071/SegmentationClass/'
f_n  = os.listdir(bacepath)
for n in f_n:
    name = bacepath+n
    img=  cv2.imread(name)
    cropped = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    cropped1 = np.array(cropped)
    index_mask = np.zeros_like(cropped1)
    i  = 0 
    for crop1 in cropped1:
        mask100 = np.where(100==crop1) #像素值为100的地方置1
        mask255 = np.where(crop1==255) #像素值为255的地方置2
        index_mask[i][mask100]=1
        index_mask[i][mask255]=2
        i += 1 
    save_name = savepath + n
    cv2.imwrite(save_name, index_mask)

你可能感兴趣的:(python,分类,opencv)