pillow学习5

ImageEnhance 模块

内置的 ImageEnhance 模块中包含了多个用于增强图像效果的函数,主要用来调整图像

的色彩、对比度、亮度和清晰度等,感觉上和调整电视机的显示参数一样。

在模块 ImageEnhance 中,所有的图片增强对象都实现一个通用的接口。这个接口只包

含如下一个方法。

方法 enhance()会返回一个增强的 Image 对象,参数 factor 是一个大于 0 的浮点数,1 表

示返回原始图片。

当在 Python 程序中使用模块 ImageEnhance 增强图像效果时,需要首先创建对应的增强

调整器,然后调用调整器输出函数,根据指定的增强系数(小于 1 表示减弱,大于 1 表示增

强,等于 1 表示原图不变)进行调整,最后输出调整后的图像。

在模块 ImageEnhance 中,常用的内置函数如下所示:

(1)ImageEnhance.Color(image ) :功能是调整图像色彩平衡,相当于彩色电视机的色彩调整,实现了上边提到的接口的enhance 方法。

(2)ImageEnhance.Contrast(image ):功能是调整图像对比度,相当于彩色电视机的对比度调整。

(3)ImageEnhance.Brightness(image ):功能是调整图像亮度。

(4)ImageEnhance.Sharpness(image ):功能是调整图像清晰度,用于锐化/钝化图片。

锐化操作的 factor 是 0~2 之间的一个浮点数。当 factor=0 时,返回一个模糊的图片对象;当 factor=2 时,返回一个锐化的图片对象;当 factor=1 时,返回原始图片对象。

锐化(Sharpening):

锐化是一种图像处理技术,旨在增强图像中的细节和边缘,使它们看起来更清晰和更突出。

锐化通过增强图像中像素之间的对比度来实现,从而使边缘更加清晰。这通常会使图像看起来更加清晰。

锐化通常用于强调图像中的细节,使图像看起来更加清晰和有视觉冲击力。
钝化(Blurring):

钝化是一种图像处理技术,旨在减少图像中的细节和边缘的清晰度,使其看起来更加模糊或柔和。

钝化通过模糊图像中的像素来实现,从而减少细节和边缘的清晰度。这通常用于柔化图像或减少噪点。

钝化可以用于减轻图像中的噪声、平滑皮肤纹理或创建艺术效果。

因此,锐化和钝化都是常见的图像处理技术,用于改变图像的外观和细节水平。选择使用哪种处理取决于您想要实现的效果以及图像的特定要求
ImageDraw 模块

ImageDraw 模块实现了绘图功能。可以通过创建图片的方式来绘制 2D 图像;还可以在原有的图片上进行绘图,已达到修饰图片或对图片进行注释的目的。

在 ImageDraw 模块绘图时需要首先创建一个 ImageDraw.Draw 对象,并且提供指向文件的参数。然后引用创建的 Draw 对象方法进行绘图。最后保存或直接输出绘制的图像。

python 复制代码
drawObject=ImageDraw.Draw(black)

绘制直线

表示以(x1,y1)为起始点,以(x2,y2)为终止点画一条直线。[x1,y1,x2,y2]也可以写为(x1,y1,x2,y2)、[(x1,y1),(x2,y2)]等;fill 用于设置指定线条颜色;width 设置线条的宽度;joint表示一系列线之间的联合类型。它可以是"曲线"。

python 复制代码
drawObject.line([x1,y1,x2,y2],fill = None,width = 0,joint = None )

绘制圆弧

在左上角坐标为(x1,y1),右下角坐标为(x2,y2)的矩形区域内,满圆 O 内,以 start 为起始角度,以 end 为终止角度,截取圆 O 的一部分圆弧并画出来。如果[x1,y1,x2,y2]区域不是正方形,则在该区域内的最大椭圆中根据角度截取片段。参数 fill 和 width 与 line 方法相

同。

python 复制代码
drawObject.arc([x1,y1,x2,y2],start,end,fill = None,width = 0 )

绘制椭圆

python 复制代码
drawObject.ellipse([x1,y1,x2,y2],fill = None,outline = None,width = 0 )

绘制弦

python 复制代码
drawObject.chord([x1,y1,x2,y2],start,end,fill = None,outline = None,width = 0 )

用法同 arc 类似,用于画圆中从 start 到 end 的弦。fill 表示弦与圆弧之间空间用指定颜色填满,设置为 outline 表示只规定弦线的颜色。
绘制扇形

python 复制代码
drawObject.pieslice([x1,y1,x2,y2],start,end,fill = None,outline = None,width = 0 )

用法同 elipse 类似,用于画起止角度间的扇形区域。fill 表示将扇形区域用指定颜色填

满,设置为 outline 表示只用指定颜色描出区域轮廓。

绘制多边形
drawObject.polygon([x1,y1,x2,y2,...],fill = None,outline = None )

根据坐标画多边形,Python 会根据第一个参量中的(x,y)坐标对,连接出整个图形。

fill 表示将多边形区域用指定颜色填满,outline 只用于设置指定颜色描出区域轮廓。

绘制矩形

python 复制代码
drawObject.rectangle([x1,y1,x2,y2],fill = None,outline = None,width = 0 )

在指定的区域内画一个矩形,(x1,y1)表示矩形左上角的坐标,(x2,y2)表示矩形右

下角的坐标。fill 用于将矩形区域颜色填满,outline 用于描出区域轮廓。
绘制矩形

python 复制代码
drawObject.rectangle([x1,y1,x2,y2],fill = None,outline = None,width = 0 )

在指定的区域内画一个矩形,(x1,y1)表示矩形左上角的坐标,(x2,y2)表示矩形右

下角的坐标。fill 用于将矩形区域颜色填满,outline 用于描出区域轮廓。
绘制文字

python 复制代码
drawObject.text(position,text,fill = None,font = None,anchor = None,spacing = 0,
align ="left",direction = None,features = None,language = None )

在图像内添加文字 。其中参数 position 是一个二元组,用于指定文字左上角的坐标;text

表示要写入的文字内容;fill 表示文本的颜色;font 必须为 ImageFont 中指定的 font 类型;

spacing 表示行之间的像素数;align 表示位置"left","center"或"right";direction 表示文字的方向。它可以是'rtl'(从右到左),'ltr'(从左到右)或'ttb'(从上到下)。

python 复制代码
from PIL import Image, ImageDraw
img = Image.open("lena.jpg")
draw = ImageDraw.Draw(img)
width, height = img.size
draw.arc( (0, 0, width-1, height-1), 0, 360, fill='blue')
img.save("circle.jpg")

ImageFont 模块

ImageFont 的功能是实现对字体和字型的处理。比较常用的内置函数如下所示:

(1)load():从指定的文件中加载一种字体,该函数返回对应的字体对象。如果该函数运行

失败,那么将产生 IOError 异常。语法格式如下:

python 复制代码
ImageFont.load(文件名)

(2)load_path():和函数 load()一样,但是如果没有指定当前路径,就会从文件 sys.path 开

始查找指定的字体文件。语法格式如下:

python 复制代码
ImageFont.load_path(文件名)

(3)truetype():有两种定义格式。第 1 种格式的功能是加载一个 TrueType 或者 OpenType

字体文件,并且创建一个字体对象。在 Windows 系统中,如果指定的文件不存在,加载器就会顺便看看 Windows 的字体目录下它是否存在。语法格式如下:

python 复制代码
ImageFont.truetype(file,size)

第 2 种格式的功能是,加载一个 TrueType 或者 OpenType 字体文件,并且创建一个字体对象。通常的编码方式是"unic"(Unicode)、"symb"(MicrosoftSymbol)、"ADOB"

(Adobe Standard)、"ADBE"(Adobe Expert)和"armn"(Apple Roman)。语法格式如下:

python 复制代码
ImageFont.truetype(file,size,encoding=value)

(4)load_default():功能是加载一种默认的字体。

python 复制代码
ImageFont.load_default()

(5)getsize():返回给定文本的宽度和高度,返回值是一个二元组。具体语法格式如下:

python 复制代码
ImageFont.getsize()
相关推荐
桃花键神几秒前
AI可信论坛亮点:合合信息分享视觉内容安全技术前沿
人工智能
岁岁岁平安4 分钟前
spring学习(spring-DI(字符串或对象引用注入、集合注入)(XML配置))
java·学习·spring·依赖注入·集合注入·基本数据类型注入·引用数据类型注入
武昌库里写JAVA7 分钟前
Java成长之路(一)--SpringBoot基础学习--SpringBoot代码测试
java·开发语言·spring boot·学习·课程设计
qq_5895681013 分钟前
数据可视化echarts学习笔记
学习·信息可视化·echarts
野蛮的大西瓜21 分钟前
开源呼叫中心中,如何将ASR与IVR菜单结合,实现动态的IVR交互
人工智能·机器人·自动化·音视频·信息与通信
CountingStars6191 小时前
目标检测常用评估指标(metrics)
人工智能·目标检测·目标跟踪
tangjunjun-owen1 小时前
第四节:GLM-4v-9b模型的tokenizer源码解读
人工智能·glm-4v-9b·多模态大模型教程
冰蓝蓝1 小时前
深度学习中的注意力机制:解锁智能模型的新视角
人工智能·深度学习
兔C1 小时前
微信小程序的轮播图学习报告
学习·微信小程序·小程序
橙子小哥的代码世界1 小时前
【计算机视觉基础CV-图像分类】01- 从历史源头到深度时代:一文读懂计算机视觉的进化脉络、核心任务与产业蓝图
人工智能·计算机视觉