Image模块

创建一个新的图片

Image.new(mode, size)
Image.new(mode, size, color)

打开一张图片

img = Image.open("1.jpg")

层叠图片

层叠两个图片,img2和img2,alpha是一个介于[0,1]的浮点数,如果为0,效果为img1,如果为1.0,效果为img2。当然img1和img2的尺寸和模式必须相同。这个函数可以做出很漂亮的效果来,而图形的算术加减后边会说到。

Image.blend(img1, img2, alpha)

点操作

img.point(function)

这个function接受一个参数,且对图片中的每一个点执行这个函数,这个函数是一个匿名函数,在python之类的函数式编程语言中,可以使用lambda表达式来完成,如

out = img.point(lamda i: i*1.2)  # 对每个点进行20%的加强

图片转换(扭曲,映射)

transform(size, method, data)

method参数:

EXTENT 剪一个矩形出来(用以剪切,拉伸,压缩等操作)
AFFINE 几何防射转换
QUAD 将一个四边形映射到一个矩形
MESH 将多个四边形映射到一个操作

在EXTENT参数的情况下,data是一个四元组(x0,y0,x1,y1),表示输入图片中需要处理的区域,size为新图片的尺寸,是一个二元组(width, height)
用途:剪贴,拉伸,压缩等操作

在AFFINE参数的情况下,data是一个六元组(a,b,c, d,e,f),其中包含affine转置矩阵的前两行。对于输出图片的每个像素(x,y),会被新值(ax+by+c, dx+ey+f)替换。
用途:反转,旋转,剪切等

在QUAD参数的情况下,data是一个八元组(x0,y0,x1,y1,x2,y2,x3,y3)表示源四边形的四个定点的坐标值.MESH方式跟QUAD的效果相当,不过是对多个四边形进行映射操作.

图片旋转

img.transpose(method)

FLIP_LEFT_RIGHT 左右倒置
FLIP_TOP_BOTTOM 上下倒置
ROTATE_90 旋转90度(逆时针)
ROTATE_180 旋转180度(逆时针)
ROTATE_270 旋转270度(逆时针)

显示

img.show()

保存

img.save("101.jpg", "JPEG")

旋转任意角度

img.rotate(45)

切片

img.crop(box)

返回当前图像的一个矩形区域。box参数是一个定义了左,上,右,下像素坐标的4元元组。

复制

img.copy()

缩略图

img.thumbnail(size)

格式转换

img.convert("RGBA")

获得某个像素点的颜色

img.getpixel((x, y))

(x, y)为像素在图片上的位置

设置某个像素点的颜色

img.setpixel((x, y))

获得图片所有像素点的颜色

img.getdata()

可以用list(img.getdata())显示出来

获得图片每种颜色的像素点数目

img.histogram()

把图片转化成矩阵

img = Image.open('93.png')

input_img = list(img.getdata())

input_img = np.reshape(input_img, (img.size[1], img.size[0]))

把矩阵转化成图片(L)

new_img = Image.fromarray(output_img.astype(np.uint8))
# output_img是一个矩阵
new_img.save('smooth_filter'+str(l)+'.png')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值