PIL:Python Imaging Library,图像标准处理库
1,图像的保存和存储,展示
from PIL import Image
# 读取图像
img = Image.open('./b.jpg')
# 基本属性
# img.format: 返回图像的类型, eg: PNG, JPEG...
# img.mode: 返回图像的通道类型,eg:L、RGB、RGBA...
# img.size: 返回图像的大小,eg: (width, height)
print((img.format, img.mode, img.size))
# 保存图像
img.save("./d.bmp")
# 展示
img.show("name")
2,图像跟numpy的转换
img = Image.open('./a.png')
# 将图像转换为numpy数组
img_arr = np.array(img)
# 将numpy转换为Image
img2 = Image.fromarray(img_arr, mode=img.mode)
3,图像转换
img = Image.open('./a.png')
# 1. 将图像转换为灰度图像
"""
def convert(self, mode=None, matrix=None, dither=None,
palette=WEB, colors=256)
mode=None:指定转换为什么通道的数据。 仅支持:"L", "RGB" and "CMYK"
"""
# img是RGB图像
img1 = img.convert("L") //灰色图像
img1.show()
4,数据增强
# 构建一个数据增强的对象
# Contrast: 对比度调整;Color:颜色的调整;Brightness:亮度调整;Sharpness:锐度调整
enhancer = ImageEnhance.Sharpness(img)
for i in range(1, 8):
factor = i / 2.0
# 进行数据增强操作
enhancer.enhance(factor).show("Sharpness %f" % factor)
5,去噪
类似于池化,选个最大的和最小的,作为当前像素点值
img = Image.open("noisy_xiaoren.png")
img = img.filter(ImageFilter.MedianFilter)//中值滤波,降噪
img.show()
还有转置,裁剪,合并等等操作,一个总结的比较好的链接