「解析」图像分割-mask的读取与保存
Pillow 图像常见属性im.width# 宽度im.height# 高度im.size# 尺寸(宽和高),是一个元组im.mode# 模式,如RGB, RGBA, P, L等im.format# 格式,如.jpg .png等im.readonly# 是否只读,值为0或1im.category# 类别im.info# 图片的信息,是一个字典三、图片的模式1位像素的范围是0-1,0表示黑1表示白,
·
Pillow 图像常见属性
im.width # 宽度
im.height # 高度
im.size # 尺寸(宽和高),是一个元组
im.mode # 模式,如RGB, RGBA, P, L等
im.format # 格式,如.jpg .png等
im.readonly # 是否只读,值为0或1
im.category # 类别
im.info # 图片的信息,是一个字典
三、图片的模式
1位像素的范围是0-1,0表示黑1表示白,中间表示灰。8位像素的范围是0-255,如RGB的(0, 0, 0)表示黑,(255, 255, 255)表示白,依此类推。
.convert 模式转换
from PIL import Image
image = Image.open("santa.jpg")
print(image.mode)
image1 = image.convert('1')
print(image1.mode)
# image1.show()
image_l = image.convert('L')
print(image_l.mode)
# image_l.show()
image_p = image.convert('HSV')
print(image_p.mode)
image_p.show()
调色板
如果图像的模式是“P”,则返回Image Palette类的实例;否则,将为None
from PIL import Image
im = Image.open("picture.jpg")
print(im.palette)
mask可视化
对于可视化则比较简单,因为不需要考虑模式问题,可以使用OpenCV也可以使用PIL的方式:
# OpenCV方式:
image = cv2.imread('cat.jpg')
mask = cv2.imread('mask.png')
mask_img = cv2.addWeighted(image, 0.5, mask, 0.7, 0.9)
cv2.imwrite("vis.jpg", mask_img)
# PIL方式:
image = Image.open('cat.jpg')
mask = Image.open('mask.png')
mask_img = Image.blend(image.convert('RGBA'), mask.convert('RGBA'), 0.7)
mask_img.save("vis2.png")
参考
- https://blog.csdn.net/oYeZhou/article/details/111934432
- https://zhuanlan.zhihu.com/p/496626220
- https://www.jianshu.com/p/26d583aeb3d3

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)