在做语义分割项目时,标注的图片不合标准,而且类型是RGBA型,且是A的部分表示的类别,因此需要将该图片转化为RGB图片
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# -*- coding:utf8 -*-
import os
from PIL import Image
im = Image. open ( '123.png' ) #打开图片
pix = im.load() #导入像素
width = im.size[ 0 ] #获取宽度
height = im.size[ 1 ] #获取长度
for x in range (width):
for y in range (height):
r,g,b,a = im.getpixel((x,y))
rgba = (r,g,b,a)
if (a = = 0 ):
im.putpixel((x,y),( 0 , 0 , 0 , 0 ))
if (a = = 255 ):
im.putpixel((x,y),( 255 , 255 , 255 , 255 ))
im = im.convert( 'RGB' )
im.save( '456.png' )
|
批量处理的方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# -*- coding:utf8 -*-
import os
from PIL import Image
path = 'SegmentationClass(RGBA)/'
savedpath = 'SegmentationClass/'
filelist = os.listdir(path)
for item in filelist:
im = Image. open ( path + item ) #打开图片
width = im.size[ 0 ] #获取宽度
height = im.size[ 1 ] #获取长度
for x in range (width):
for y in range (height):
r,g,b,a = im.getpixel((x,y))
if (a = = 0 ):
im.putpixel((x,y),( 0 , 0 , 0 , 0 ))
if (a = = 255 ):
im.putpixel((x,y),( 255 , 255 , 255 , 255 ))
im = im.convert( 'RGB' )
im.save(savedpath + item)
print ( 'item of %s is saved ' % (item))
|
以上这篇Python之修改图片像素值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/zong596568821xp/article/details/83586530