发布时间:2021-07-29 00:05:08编辑:run阅读(3190)
使用PIL进行图片处理,PIL提供了许多图像处理的函数,使用点变换来更改像素值对图像实现几何变换
PIL模块安装
pip install pillow
图像裁剪,可以使用带有所需矩形参数的crop()函数从图像中裁剪相应的区域.
原图效果:
裁剪code
from PIL import Image im = Image.open(r'D:\image_processing\jpgs\ss.jpg') im_c = im.crop((80,30,230,160)) im_c.show()
调整图像尺寸,为了增大或缩小图像的尺寸,可以使用resize()函数,该函数可在内部分别对图像进行上采样或下采样,调整为较大的图像,以上面的裁剪图为例:
from PIL import Image im = Image.open(r'D:\image_processing\jpgs\ss_1.jpg') im_large = im.resize((im.width*2, im.height*2), Image.ANTIALIAS) im_large.show()
放大了2倍.
这个函数img.resize((width, height),Image.ANTIALIAS)
第二个参数:
Image.NEAREST :低质量
Image.BILINEAR:双线性
Image.BICUBIC :三次样条插值
Image.ANTIALIAS:高质量
调整为较小的图片
from PIL import Image im = Image.open(r'D:\image_processing\jpgs\ss_1.jpg') im_small = im.resize((im.width//2, im.height//2), Image.ANTIALIAS) im_small.show()
图像负片,可以使用point()函数,用单参数函数来转换每个像素值。可以使用它来生成图像负片。像素值用1字节无符号整数表示,从最大可能值中减去该值将是每个像素上获得图像反转所需的精确点操作。
from PIL import Image im = Image.open(r'D:\image_processing\jpgs\ss.jpg') im_t = im.point(lambda x: 255 - x) im_t.show()
将图片转换为灰度图像。可以使用带有L参数的convert()函数将RGB彩色图像更改为灰度图像。
from PIL import Image im = Image.open(r'D:\image_processing\jpgs\ss.jpg') im_l = im.convert('L') im_l.show()
对数变换可以有效地压缩具有动态像素值的图像
原图
对数变换code
from PIL import Image import numpy as np im_g = Image.open(r'D:\image_processing\jpgs\aaa.jpg') im_g.point(lambda x: 255*np.log(1+x/255)).show()
可以看到,像素值的范围缩小,输入图像中较亮的像素变暗,较暗的像素变亮。
幂律变换,幂律变换用作图像的Y校正,增强较暗的图像
from PIL import Image im_g = Image.open(r'D:\image_processing\jpgs\aaa.jpg') im_g.point(lambda x: 255*(x/255)**0.5).show()
与上面的相比,效果非常明显,增强较暗的图像。
上一篇: python3-基本图像操作
下一篇: python3-PIL图像实战2
47745
46236
37110
34627
29229
25886
24745
19863
19417
17909
5716°
6315°
5835°
5888°
6985°
5829°
5846°
6361°
6316°
7673°