VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > python教程 >
  • python基础教程之美白,磨皮,搞笑图片处理

本站最新发布   Python从入门到精通|Python基础教程
试听地址  
https://www.xin3721.com/eschool/pythonxin3721/


一、PIL库概述

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

1、功能:

(1)图像归档:对图像进行批处理、生成图像预览、图像格式转换等;

(2)图像处理:图像基本处理、像素处理、颜色处理等。

2、分类:

Ⅰ、Image类:from PIL import Image

(1)图像读取和创建方法

方法 描述

Image.open(filename)

根据参数加载图像文件

Image.new(mode, size, color)

根据给定参数创建一个新的图像

Image.open(StringIO.StringIO(buffer))

字符串中获取图像

例:

1
2
from PIL import Image
im = Image.open("D:\\我爱学习\\python3\\photos\\image1.jpg")

  

(2)处理图片常用属性:

方法 描述
Image.format

标识图像格式或来源,如果图像不是从文件读取,值是None

Image.mode

图像的色彩模式,"L"灰度图像、"RGB"真彩色图像、"CMYK"出版图像

Image.size

图像宽度和高度,单位是像素(px),返回值是二元元组(tuple)

Image.palette

调色板属性,返回一个ImagePalette类型

(3)图像转换和保存方法:

方法 描述
Image.save(filename,format) 将图像保存为filename文件名,format是文件格式
Image.convert(mode) 使用不同的参数,转换图像为新的模式
Image.thumbnail(size) 创建图像的缩略图,size是缩略尺寸的二元元组

 例:

1
2
3
4
from PIL import Image
im = Image.open("D:\\我爱学习\\python3\\photos\\image1.jpg")
im.thumbnail((128,128))
im.save("D:\\我爱学习\\python3\\photos\\imagechange1.jpg")

  效果对比图如下:

(4)像素点和RGB:

方法 描述
Image.point(func)

根据函数func功能对每个元素进行运算,返回图像副本

Image.split() 提取RGB图像的每个颜色通道,返回图像副本
Image.merge(mode,bands) 合并通道 ,采用mode色彩,bands是新色的色彩通道
Image.blend(im1,im2,alpha) 

将两幅图片im1和im2按照如下公式插值后生成新的图像: im1 * (1.0-alpha) + im2 * alpha

例:

1
2
3
4
5
from PIL import Image
im = Image.open("D:\\我爱学习\\python3\\photos\\image1.jpg")
r,g,b = im.split()
om = Image.merge("RGB",(b,g,r))
om.save("D:\\我爱学习\\python3\\photos\\imagechange2.jpg")

  效果对比如下:

 Ⅱ、ImageFilter类:from PIL import ImageFilter

方法 描述

ImageFilter.BLUR

图像的模糊效果

ImageFilter.CONTOUR

图像的轮廓效果

ImageFilter.DETAIL

图像的细节效果

ImageFilter.EMBOSS

图像的浮雕效果

ImageFilter.SMOOTH

图像的平滑效果

ImageFilter.SHARPEN

图像的锐化效果

Ⅲ、ImageEnhance类:from PIL import ImageEnhance

方法 描述

ImageEnhance.enhance(factor)

对选择属性的数值增强factor倍

ImageEnhance.Color(im)

调整图像的颜色平衡

ImageEnhance.Contrast(im)

调整图像的对比度

ImageEnhance.Brightness(im)

调整图像的亮度

ImageEnhance.Sharpness(im)

调整图像的锐度

 Ⅳ、图像字符画绘制:位图图片是由不同颜色像素点组成的规则分布,如果采用字符串代替像素,图像就成为了字符画。

 

 二、实例展现

1、以下图为例,进行缩略,变色,提取轮廓和浮雕:

(原图 image6.jpg)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from PIL import Image
from PIL import ImageFilter
im = Image.open("D:\\我爱学习\\python3\\photos\\image6.jpg")
 
r,g,b = im.split()     #变色
newr = b.point(lambda i: i * 0.7)
bm = Image.merge("RGB",(b,g,r))
bm.save("D:\\我爱学习\\python3\\photos\\imageaa2.jpg")
 
cm = im.filter(ImageFilter.CONTOUR)    #轮廓
cm.save("D:\\我爱学习\\python3\\photos\\imageaa3.jpg")
 
dm = im.filter(ImageFilter.EMBOSS)    #浮雕
dm.save("D:\\我爱学习\\python3\\photos\\imageaa4.jpg")
 
im.thumbnail((120,120))    #缩略
im.save("D:\\我爱学习\\python3\\photos\\imageaa1.jpg")
相关教程