Python批量制作索引图

python 批量制作索引图

python批量制作索引图

最近看的语义分割GSCNN代码的数据集为cityscapes类型,代码中需要的标签图为索引图,而我的标签是3通道RGB图,所以参考了两篇博客。我是二分类,只有背景和一类标注。制作索引图记录。生成的索引图label为0,1。没上色的索引图可能看着是全黑,但是使用matlab显示图像利用工具可以看到标注的像素值不同。
参考:python制作索引图
python制作索引图

代码

# coding:utf-8
'''
制作索引图
'''
# coding:utf-8

from random import randint
from PIL import Image
import os
input_dir = 'D:/Users/caixingmin/Desktop/save/'
out_dir = 'D:/Users/caixingmin/Desktop/tupian/'

a = os.listdir(input_dir)
#def randomPalette(length, min, max):
    #return [randint(min, max) for x in range(length)]
palette = [0, 0, 0,
           128, 0, 0, ]#调色板颜色

# paletteID = randomPalette(768, 0, 255)    #用于多分类
label_pixel_value = 178  # 标注物体的像素值(转换成灰度图像后)
#path = 'D:\\Users\\caixingmin\\Desktop\\CamVid_runway2\\train_labels\\0014.png'
for i in a[0:]:
    #print(i)
    img = Image.open(input_dir+i).convert('L')
    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.show()
     img.putpalette(palette)  # 一分类, 【0,0,0】是背景,【128,0,0】是标注物,不上色的时候注释掉
# img.putpalette(paletteID)  # 多分类   # 需要图像上有多类像素值

#img.show()

    img.save(out_dir+i)

图片

背景的index为0,[R,G,B]为[0 0 0]
在这里插入图片描述

标注物像素值

label_pixel_value = 178 # 标注物体的像素值(转换成灰度图像后)

上述代码中的label_pixel_value是标签转换成灰度图像之后的标注物的像素值。转换成灰度图代码:

from PIL import Image
import os
input_dir = 'D:/Users/ca/Desktop/shi/'
out_dir = 'D:/Users/ca/Desktop/tupian/'
#可以只转换单张看像素值就好
a = os.listdir(input_dir)

for i in a[0:]:
 
    img = Image.open(input_dir + i).convert('L')
    img.save(out_dir+i)

转换后通过matlab查看灰度图片对应标注物的index
标注物index=38
所以这里 label_pixel_value = 38

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值