本文写作目的为了记录之前的工作中使用到的python语言进行简单的图像处理相关的一些基础使用。
在python中对于图像的简单处理主要利用opencv库和python实现的Pillow库;图片数据来源可以是本地上传也可以通过网络传输,下面将分别针对这两种场景进行简单的记录
(1)图片源自本地:
1. 使用Pillow读取本地图片:
from PIL import Image
img = Image.open(r"D://test.jpg") ##读取本地图片
img.show() ##显示图片
img.size ##图片的(宽,高)
img.mode ##图片的模式,RGB一般的图片格式,RGBA带有透明图层的图片,L灰度图片,CMYK等。详细的图片格式见下面单独的模块 。
img.format #图片的格式
2.对图片的一些简单处理接口
##RGB图片转换为灰度图片
imgs = img.convert("L")
PS:灰度图的format为啥没输出。。待确认
##图片的缩放
imgs2 = img.resize(800,800)
##图片保存到本地
imgs2.save("D://test2.jpg")
##图片裁剪
imgs3 = img.crop((0,0,100,100)) ##左上和右下两点的坐标
imgs3 = imgs.transpose(Image.ROTATE_180) ##反转180°,左右,上下,前后的翻转
img.paste(imgs3,(0,0,100,100)) ##两个图层粘贴
img1 = img.rotate(45) ##图片旋转45度
r,g,b = img1.split() ##通道分离
r,g,b数据内存地址,同时表明PIL读取RGB图片时,通道舒顺序也是RGB,这与Opencv读取不同
img_threshold = img.point(lambda i:i>128 and 255)##对图片的像素进行处理
2.cv读取本地图片
(2)网络传输图片数据(base64,byte.url)