随笔小杂记(四)——将语义分割标签转换为指定像素值
代码
import cv2
import numpy as np
import os
import tqdm
# img_list = ['label.png']
import os
filepath = "./emmm"
if __name__ == "__main__":
print("start")
if not os.path.exists(filepath):
print("目录不存在!!")
os._exit(1)
i=0;
filenames = os.listdir(filepath)
# for data in filenames:
# newname=str(i)+"_src.png"
# i=i+1
# print(newname)
# os.rename(filepath + '\\' + data, filepath + '\\' + newname)
rootpath = filepath
imglist = filenames
for imgname in tqdm.tqdm(imglist):
# print(imgname)
img = cv2.imread(os.path.join(rootpath, imgname))
gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
print(np.unique(gray),np.shape(gray),np.shape(img))
print('图片大小为:', gray.shape)
print('开始转换...')
if np.unique(np.array(gray))[0]!=2 and np.unique(np.array(gray))[1]!=15:
print(np.unique(np.array(gray)))
for i in range (gray.shape[0]):
for j in range(gray.shape[1]):
if gray[i][j] == 255:
gray[i][j] = 1#水
# if gray[i][j] == 75:
# gray[i][j] = 2#水中杂物
# if gray[i][j] == 38:
# gray[i][j] = 1#水中岛屿
# if gray[i][j] == 0:
# gray[i][j] = 0#陆地(非水体)
filename = imgname
cv2.imwrite(os.path.join(rootpath, filename), gray)
print('已保存文件{}'.format(filename))
# for i in range (gray.shape[0]):
# for j in range(gray.shape[1]):
# if gray[i][j] == 113:
# gray[i][j] = 27#水
# if gray[i][j] == 75:
# gray[i][j] = 8#水中杂物
# if gray[i][j] == 38:
# gray[i][j] = 8#水中岛屿
# if gray[i][j] == 0:
# gray[i][j] = 8#陆地(非水体)
#
#
# for i in range (gray.shape[0]):
# for j in range(gray.shape[1]):
# if gray[i][j] == 27:
# gray[i][j] = 1#水
# # print('changed')
# if gray[i][j] == 8:
# gray[i][j] = 15#陆地(非水
# # print('changed22')
# filename = '2label_'+imgname
# cv2.imwrite(os.path.join(rootpath, imgname[0:-4])+'xxx.tif', gray)
#
#
# print('已保存文件{}'.format(os.path.join(rootpath, imgname)))