【已解决】attributeerror: ‘FreeTypeFont‘ object has no attribute ‘getsize‘

简介: 【已解决】attributeerror: ‘FreeTypeFont‘ object has no attribute ‘getsize‘

问题

报错:attributeerror: ‘FreeTypeFont’ object has no attribute ‘getsize’

运行yolo代码时,出现如下面的报错

原因分析

看过很多博客分析,都是说FreeTypeFont 字体的原因,其实真实问题出现yolo版本安装的Pillow库更新后,getsize()方法已经抛弃使用了,而你拉下来的代码肯定是github之前的老旧版本

解决方法

解决步骤

如图,之前版本是10.2.0,安装9.5会自动卸载原来版本

很简单,把Pillow库还原回之前的版本就行

pip install Pillow==9.5

关于Pillow库

Pillow 是 Python 中一个非常流行的图像处理库,它是 PIL(Python Imaging Library)的一个分支,PIL 最初由 Fredrik Lundh 在 1997 年创建。Pillow 提供了大量的图像文件格式支持,并且可以用于执行多种图像处理操作。


以下是 Pillow 的一些主要特性:

文件格式支持:Pillow 支持打开和保存许多不同格式的图像文件,包括但不限于 PNG, JPEG, TIFF, BMP, GIF 和 WebP。


图像操作:可以对图像进行多种变换,如缩放、裁剪、旋转、翻转、过滤等。


绘图:可以直接在图像上绘制文本、线条、多边形等图形。


颜色处理:可以处理不同模式的图像,如灰度、RGB、CMYK、HSV 等。


透明度和掩码:支持透明度操作和使用掩码进行复杂的图像合成。


特效:提供多种图像特效,如模糊、锐化、平滑、边缘增强等。


安全处理:Pillow 可以安全地处理文件路径和图像数据,减少安全漏洞的风险。


元数据:可以读取和写入图像文件的元数据。


动画:支持创建和操作 GIF 和其他格式的动画。


易于安装:通过 pip 可以很容易地安装 Pillow。

安装 Pillow 非常简单,你可以使用 pip 命令进行安装:

pip install Pillow

以下是使用 Pillow 打开图像、进行一些基本操作并保存图像的简单示例:

from PIL import Image

# 打开图像文件
img = Image.open("example.jpg")

# 将图像转换为灰度图像
img_gray = img.convert("L")

# 将图像旋转45度
img_rotate = img.rotate(45, expand=True)

# 将图像保存到文件
img_rotate.save("rotated_example.jpg")

# 在图像上绘制文本
draw = ImageDraw.Draw(img)
draw.text((20, 20), "Hello, Pillow!", (255, 255, 255))

# 显示图像
img.show()

Pillow 是图像处理和图形编程中一个非常强大且多用途的工具,它的灵活性和易用性使其成为 Python 图像处理的首选库之一。

相关文章
|
4月前
|
TensorFlow 算法框架/工具 Python
【Tensorflow 2】解决'Tensor' object has no attribute 'numpy'
解决'Tensor' object has no attribute 'numpy'
73 3
|
4月前
|
API C++ Python
【Azure 应用服务】Python fastapi Function在Azure中遇见AttributeError异常(AttributeError: 'AsgiMiddleware' object has no attribute 'handle_async')
【Azure 应用服务】Python fastapi Function在Azure中遇见AttributeError异常(AttributeError: 'AsgiMiddleware' object has no attribute 'handle_async')
|
5月前
|
并行计算 Serverless API
函数计算操作报错合集之出现 "AttributeError: 'NoneType' object has no attribute 'pop'" 错误,是什么原因
在使用函数计算服务(如阿里云函数计算)时,用户可能会遇到多种错误场景。以下是一些常见的操作报错及其可能的原因和解决方法,包括但不限于:1. 函数部署失败、2. 函数执行超时、3. 资源不足错误、4. 权限与访问错误、5. 依赖问题、6. 网络配置错误、7. 触发器配置错误、8. 日志与监控问题。
163 1
|
4月前
|
TensorFlow API 算法框架/工具
【Tensorflow+keras】解决使用model.load_weights时报错 ‘str‘ object has no attribute ‘decode‘
python 3.6,Tensorflow 2.0,在使用Tensorflow 的keras API,加载权重模型时,报错’str’ object has no attribute ‘decode’
56 0
|
5月前
|
Python
【Python】已解决:(Python xlwt写入Excel报错)AttributeError: ‘function’ object has no attribute ‘font’
【Python】已解决:(Python xlwt写入Excel报错)AttributeError: ‘function’ object has no attribute ‘font’
122 0
|
5月前
|
Python
【Python】已解决:(Python写入Excel表格报错)‘NoneType’ object has no attribute ‘write’
【Python】已解决:(Python写入Excel表格报错)‘NoneType’ object has no attribute ‘write’
300 0
|
5月前
|
XML 数据格式 Python
【Python】已解决:AttributeError: ‘function’ object has no attribute ‘ELement’
【Python】已解决:AttributeError: ‘function’ object has no attribute ‘ELement’
178 0
|
5月前
|
API Python
【Python】已解决:AttributeError: ‘TfidfVectorizer’ object has no attribute ‘get_feature_names_out’
【Python】已解决:AttributeError: ‘TfidfVectorizer’ object has no attribute ‘get_feature_names_out’
150 0
|
1月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
86 4
|
2月前
|
Java
Java Object 类详解
在 Java 中,`Object` 类是所有类的根类,每个 Java 类都直接或间接继承自 `Object`。作为所有类的超类,`Object` 定义了若干基本方法,如 `equals`、`hashCode`、`toString` 等,这些方法在所有对象中均可使用。通过重写这些方法,可以实现基于内容的比较、生成有意义的字符串表示以及确保哈希码的一致性。此外,`Object` 还提供了 `clone`、`getClass`、`notify`、`notifyAll` 和 `wait` 等方法,支持对象克隆、反射机制及线程同步。理解和重写这些方法有助于提升 Java 代码的可读性和可维护性。
89 20