学习笔记:python人脸识别6-freetype给识别的人脸标注中文

在我的博文 https://blog.youkuaiyun.com/oLinBSoft/article/details/87458103 中实现识别摄像头中的人脸并标注姓名,但cv2.putText() 只能输出英文,中文会乱码

需要在图片中标注中文,需要中文库,我这用的是freetype

安装:

pip3 install freetype-py

安装后 ,可以正常导入

把上面博客中的程序进行改造以显示中文

1. 增加导入模块

from PIL import Image, ImageDraw, ImageFont
import numpy as np

2. 在程序画完框线后,注释掉原来的cv2.putText() 输出文字,改为如下

#在人脸上画一个框
cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)
# 在框底部画一个文本框,并标注姓名
cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), cv2.FILLED)
#注释掉原来的字体设置
#font = cv2.FONT_HERSHEY_DUPLEX 
#注释掉原来的字体输出
#cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (255, 2
<think>首先,用户的问题是:"我想解决关于unrecognizedoptions:--with-freetype的警告问题请问WARNINGunrecognizedoptions--with-freetypesolution"。用户遇到了一个警告:在运行某个配置命令时,出现了“unrecognizedoptions:--with-freetype”的警告。用户提供了两个引用:-引用[1]:这是一个长命令,是PHP的配置选项,包括许多如--with-freetype等标志。-引用[2]:是关于编译LAMP环境的流程,提到了下载apr-util的步骤。引用中提到用户之前的问题可能涉及编译安装环境,比如LAMP栈(Linux,Apache,MySQL,PHP)。用户现在的问题是解决--with-freetype选项不被识别的警告。我需要回想系统级指令:-所有行内数学表达式使用$...$格式,但在这个问题中,可能没有数学内容,所以可以忽略。-独立公式使用$$...$$,但同样,可能不需要。-LaTeX语法正确。-使用中文回答。-生成相关问题。-回答中引用的段落末尾自然地添加引用标识,如[^1]。用户问题焦点:解决编译PHP时出现的--with-freetype不被识别的警告。常见原因:这个选项可能是针对特定库的,freetype是一个字体渲染库。在编译PHP时,使用--with-freetype选项是为了支持freetype库来处理字体。警告表明配置脚本不认识这个选项。解决方案步骤:1.**检查选项的正确性**:确认是否拼写错误或版本兼容性问题。2.**确保freetype库已安装**:--with-freetype选项依赖于系统上已安装的freetype开发文件。3.**更新配置方式**:在新版本的PHP中,freetype集成方式可能改变,需要调整选项。4.**查阅文档**:参考PHP官方文档或编译文档对freetype支持的最新选项。根据用户提供的引用[1],命令中包含--with-freetype-dir,但在警告中用户说--with-freetype。可能是个笔误或理解错误。用户输入的是“--with-freetype”,但引用[1]中是“--with-freetype-dir”。我需要澄清这一点。用户说:"WARNINGunrecognizedoptions--with-freetype",但在引用[1]中是--with-freetype-dir。可能用户在命令中使用了--with-freetype,而实际应该是--with-freetype-dir或其他正确形式。常见解决:-在较新的PHP版本中,freetype支持可能不再需要单独的--with-freetype选项,因为可能是默认或集成到GD库中。-标准做法是使用--with-freetype-dir=DIR来指定freetype的安装目录。步骤:1.**安装freetype开发库**:在Linux上,使用包管理器如apt或yum安装libfreetype6-dev或freetype-devel。2.**检查PHP配置选项**:运行./configure--help来查看可用选项。确认--with-freetype-dir或类似选项是否存在。3.**更新命令**:如果使用--with-freetype-dir,确保指定正确的路径,如--with-freetype-dir=/usr或实际安装目录。4.**测试**:运行命令看是否解决警告。生成相关问题:我需要生成相关的问题以帮助用户进一步理解或解决其他问题。回答结构:-引言:解释问题。-分步解决方案。-生成相关问题。-使用引用标识。最后,添加引用:[^1]forreference1,[^2]forreference2,butonlyifrelevant.我的回答:1.解释原因:--with-freetype选项可能已废弃或被替换。2.建议:使用--with-freetype-dir并指定目录。3.步骤:-安装freetype开发包:例如在Ubuntu,运行`sudoapt-getinstalllibfreetype6-dev`-在配置PHP时,使用`--with-freetype-dir=/usr`或其他目录。-如果目录不明,运行`pkg-config--cflagsfreetype2`查看路径。4.如果使用新版本PHP,可能只需启用GD支持而不需要单独选项。在用户引用[1]中,命令是"--with-freetype-dir"withoutaspecificpath,whichmightcausethewarningifnotfound.Sosuggestaddingthepath.用户提到“unrecognizedoptions:--with-freetype”,但在命令中是--with-freetype-dir。可能用户使用的是不同命令。我认为用户混淆了选项名称。安全地说:假设用户使用的是类似引用[1]的命令。AnswerinChinese.</think> ### 解决 WARNING: unrecognized options: --with-freetype 的警告问题 在编译 PHP 或类似软件时遇到 `WARNING: unrecognized options: --with-freetype` 警告通常是由于配置脚本不再支持该选项或选项格式过时所致。freetype 是一个字体渲染库,常用于支持 GD 库来处理图像中的字体。以下是分步解决方案,基于常见 Linux 环境(如 Ubuntu 或 CentOS)。我会根据您的引用内容[^1]和编译上下文进行说明。 #### 问题原因分析 - **过时或不支持的选项**:`--with-freetype` 选项在较新版本的 PHP(例如,PHP 7.x 以上)中可能已被弃用或替换。引用[^1]中显示使用的是 `--with-freetype-dir`,而不是 `--with-freetype`,这可能是因为您错误使用了选项名称或版本不兼容[^1]。 - **缺少依赖库**:即使选项正确,也可能因 freetype 开发库未安装而触发警告。 - **路径问题**:如果使用 `--with-freetype-dir`,但没有正确指定 freetype 的安装路径,系统无法找到库文件。 #### 分步解决方案 按照以下步骤操作,解决警告问题。假设您在编译 PHP,类似于引用[^1]的配置命令。 1. **确认正确选项和可用性**: - 首先,检查当前 PHP 配置脚本支持的选项。运行以下命令查看可用参数: ```bash cd /path/to/php-source-dir # 进入 PHP 源码目录 ./configure --help | grep freetype ``` - 如果输出显示 `--with-freetype-dir` 或 `--with-freetype`,请使用正确形式(通常 `--with-freetype-dir` 是新版默认)。例如,在您的引用命令中应是 `--with-freetype-dir`[^1]。 - 如果输出为空,表示 `--with-freetype` 已被弃用,需采用新方法。 2. **安装 freetype 开发库**: - 警告常因依赖库缺失引起。使用系统包管理器安装 freetype 开发文件。这里基于不同发行版提供命令: - Ubuntu/Debian: ```bash sudo apt-get update sudo apt-get install libfreetype6-dev # 安装最新开发库 ``` - CentOS/RHEL: ```bash sudo yum install freetype-devel # 确保与您的系统兼容 ``` - 安装后,验证库路径: ```bash pkg-config --cflags freetype2 # 输出类似 -I/usr/include/freetype2 ``` - 记录路径(如 `/usr/include/freetype2`),后续配置时使用。 3. **修正配置命令**: - 替换 `--with-freetype` 为正确选项并指定路径。在您的配置命令中(如引用[^1]),更新如下: - 原始命令:`./configure --prefix=/usr/local/php ... --with-freetype-dir ...` - 修改为(指定 freetype 路径): ```bash ./configure --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --with-mysql=/usr/local/mysql \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --with-freetype-dir=/usr \ # 使用实际路径,例如 /usr 或 /usr/include/freetype2 ... # 其他选项保持原样 ``` - **注意**: - 如果您之前误用了 `--with-freetype`,改为 `--with-freetype-dir`。 - 路径推荐:一般系统默认安装时,`--with-freetype-dir=/usr` 或 `--with-freetype-dir=/usr/include` 可工作。如果通过源码安装 freetype,使用实际安装目录(如 `/usr/local`)。 - 如果 `--with-freetype-dir` 也无效,表明新版 PHP 可能通过 `--with-gd` 自动处理 freetype。删除 `--with-freetype-dir`,确保 GD 启用:如 `--with-gd`。 4. **测试并重新配置**: - 运行更新后的配置命令。如果警告消失,继续编译: ```bash make sudo make install ``` - 如果警告仍存在,检查编译日志: ```bash cat config.log | grep freetype # 查看详细错误 ``` - 常见额外处理:如果使用外部源码(如引用[2]中的 apr-util),确保整个 LAMP 环境依赖一致[^2]。 #### 其他注意事项 - **版本兼容性**:PHP 8.0+ 通常使用 `--with-freetype-dir` 或集成到 `--enable-gd`。查阅 PHP 官方文档匹配版本。 - **警告影响**:此警告通常不影响编译成功,但可能导致 GD 字体功能缺失。建议修复以确保完整功能。 - **引用优化**:参考您的 LAMP 编译流程(如引用[^2]),如果涉及多软件安装,确保 apr-util 等依赖已正确处理避免冲突[^2]。 如果以上步骤无效,提供更多上下文(如 PHP 版本和系统环境),我可以进一步协助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值