PIL:Python Imaging Library,Python平台的图像处理标准库。
1)使用 Image 类
# PIL.Image.open(fp, mode='r')
from PIL import Image
im = Image.open('pic.jpg')
print(im)
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=640x640 at 0xC32668>
加载成功后,将返回一个Image对象,可以通过使用示例属性查看文件内容:
"""
print(im.format,im.size,im.mode)
# JPEG (640, 640) RGB
im.show()
# 会调用默认的图片打开方式打开文件
format 这个属性标识了图像来源。如果图像不是从文件读取它的值就是None。
size属性是一个二元tuple,包含width和height(宽度和高度,单位都是px)。
mode 属性定义了图像bands的数量和名称,以及像素类型和深度。常见的modes 有 “L” (luminance) 表示灰度图像, “RGB” 表示真彩色图像, and “CMYK” 表示出版图像。
如果文件打开错误,返回 IOError 错误。
2)读写图像
# 加载文件,并转化为png格式:
# Image.save(fp, format=None, **params)[source]
from PIL import Image
import os
infile = 'pic.jpg'
f, e = os.path.splitext(infile) # os.path.splitext()将文件名和扩展名分开
outfile = f + ".png"
if infile != outfile:
try:
Image.open(infile).save(outfile)
except IOError:
print("Cannot convert", infile)
3)图像的剪切、粘贴与合并操作
"""
Image.crop(box=None)
参数: box – The crop rectangle, as a (left, upper, right, lower)-tuple.即左上和右下的坐标
返回类型: Image
返回: An Image object.
"""
im = Image.open('pic.jpg')
box = (100,100,300,300)
region = im.crop(box)
print(region.size) # (200, 200)
region = region.transpose(Image.ROTATE_180)
box = (200,200,400,400)
im.paste(region,box) # 粘贴内容和选择区域尺寸必须一样
# im.show()
4)分离和合并颜色通道
r,g,b = im.split() # 对于图像对象的执行split()函数,如果是单通道的,则返回其本身,否则,返回各个通道。
im = Image.merge('RGB',(r,g,b))
# im.show()
5)几何变换
out= im.resize((128,128))
out = im.rotate(45) # 逆时针方向
7)颜色空间变换
在处理图像时,根据需要进行颜色空间的转换:
cmyk = im.convert("CMYK")
gray = im.convert("L")
8)图像滤波
图像滤波在ImageFilter 模块中,在该模块中,预先定义了很多增强滤波器,
可以通过filter( )函数使用,预定义滤波器包括:
BLUR、CONTOUR、DETAIL、EDGE_ENHANCE、EDGE_ENHANCE_MORE、EMBOSS、FIND_EDGES、SMOOTH、SMOOTH_MORE、SHARPEN。
其中BLUR就是均值滤波,CONTOUR找轮廓,FIND_EDGES边缘检测,
from PIL import ImageFilter
imgF = Image.open("pic.jpg")
outF = imgF.filter(ImageFilter.DETAIL) # 细节滤波
conF = imgF.filter(ImageFilter.CONTOUR) # 轮廓滤波
edgeF = imgF.filter(ImageFilter.FIND_EDGES) # 边界增强滤波
imgF.show()
outF.show()
conF.show()
edgeF.show()
具体滤波函数及实例可参考:
Python图像处理之Pillow–ImageFilter
ImageFilter Module
转载:https://blog.csdn.net/qq_27921205/article/details/102255273
查看评论