参考: https://blog.csdn.net/tellsummer/article/details/80815826
# coding:utf-8
from random import randint
from PIL import Image
import os
def randomPalette(length, min, max):
return [randint(min, max) for x in range(length)]
# paletteID = randomPalette(768, 0, 255) #用于多分类
label_pixel_value = 255 # 标注物体的像素值(转换成灰度图像后)
path = '0967.png'
img = Image.open(path).convert('L')
img.show()
for x in range(img.size[0]):
for y in range(img.size[1]):
if img.getpixel((x, y)) ==label_pixel_value: # 给标注部分分配一个像素值,多分类分配多个像素值
img.putpixel((x, y), 1)
else:
img.putpixel((x, y), 0) #背景部分
img.putpalette([0, 0, 0, 0, 255, 0]) # 一分类, 【0,0,0】是背景,【0,255,0】是标注物
# img.putpalette(paletteID) # 多分类 # 需要图像上有多类像素值
img.show()
img.save('index_pic.png')
原图:
标注图:
索引图:
Please adjust the code according to your project !