python图像处理之PIL库

  • PIL库是python语言第三方库,需要通过pip工具安装,安装库的名字是pillow。

PIL库支持图像存储,显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放,裁剪,叠加以及向图像添加线条,图像和文字等操作。

功能需求:

  1. 图像归档:对图像进行批处理,生成图像预览,图像格式转换等。
  2. 图像处理:图像基本处理,像素处理,颜色处理等。
  • PIL库Image类解析

导入方法:from PIL import Image

要加载一个图像文件,最简单的形式如下,之后所有操作对im起作用

from PIL import Image
im=Image.open("H:\\谷歌下载\\b.jpg")

常用属性:

  1. format:源文件的文件格式。如果是由PIL创建的图像,则其文件格式为None。
  2. mode:图像的模式。这个字符串表明图像所使用像素格式。该属性典型的取值为“1”,“L”,“RGB”或“CMYK”。
  3. size:图像的尺寸,按照像素数计算。它的返回值为宽度和高度的二元组(width, height)。
  4. palette:颜色调色板表格。如果图像的模式是“P”,则返回ImagePalette类的实例;否则,将为None。

微实例:

from PIL import Image
im=Image.open("H:\\谷歌下载\\b.jpg")
print(im.format,im.size,im.mode)

微实例:

交换图像的颜色。可以通过分离RGB图片的3个颜色通道实现颜色互换。

from PIL import Image
im=Image.open("H:\\谷歌下载\\b.jpg")
r,g,b=im.split()
om=Image.merge("RGB",(b,g,r))
om.save("H:\\谷歌下载\\b.jpg")

交换前:

交换后:

  • PIL库ImageFilter类解析
  1. BLUR:模糊滤镜。会使图片较原先的模糊一些。
  2. CONTOUR:等高线。也就是轮廓滤波,将图像中的轮廓信息提取出来。
  3. DETALL:细节。也就是细节增强滤波,它会显化图片中细节。
  4. EDGE_ENHANCE:边缘强化。边缘增强滤波,突出、加强和改善图像中不同灰度区域之间的边界和轮廓的图像增强方法。经处理使得边界和边缘在图像上表现为图像灰度的突变,用以提高人眼识别能力。
  5. EDGE_ENHANCE_MORE :边缘更强。深度边缘增强滤波,会使得图像中边缘部分更加明显。
  6. EMBOSS :浮雕。浮雕滤波,会使图像呈现出浮雕效果。
  7. FIND_EDGES :边缘查找。寻找边缘信息的滤波,会找出图像中的边缘信息。
  8. SMOOTH :光滑。平滑滤波,突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和干扰高频成分,使图像亮度平缓渐变,减小突变梯度,改善图像质量。
  9. SMOOTH_MORE:更加光滑。深度平滑滤波,会使得图像变得更加平滑。
  10. SHARPEN:锐化。锐化滤波,补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰。

微实例:

from PIL import Image
from PIL import ImageFilter
im=Image.open("H:\\谷歌下载\\b.jpg")
om=im.filter(ImageFilter.CONTOUR)
om.save("H:\\谷歌下载\\b.jpg")

处理后: