Python2.x上使用freetype实现OpenCV2.x的中文输出

本文介绍了如何在Python2.x版本的OpenCV2.x中解决中文输出问题,由于OpenCV2.x本身不支持中文,可以借助freetype库来实现。首先,详细讲解了freetype的安装步骤,接着讨论了Python2.x中文编码处理的注意事项,包括字符串类型的转换。最后,给出了代码封装的建议,并提醒注意不同字体对中文显示的影响。
摘要由CSDN通过智能技术生成

OpenCV2.x的putText是无法处理中文的(OpenCV3.x中集成了freetype实现中文输出),同样,Python2.x对中文的支持也很差(同样这一情况在Python3.x中得到了改善)。
所以最方便的方法是,两个都换成3.x版本的。。。[捂脸]


freetype的安装

计算机上显示文本的过程大体上是,先将文本转换成一个一个的bitmap,然后再用图形系统将这些bitmap显示出来。freetype是一个开源的字体引擎,它完成的工作即是将字符转换成bitmap。

参考这篇文章Github项目介绍,首先需要编译安装freetype2
1)到这里下载最新的freetype2,解压缩后进入目录

../configure
make
sudo make install

2)到这里下载freetype-py源代码,解压缩后进入目录

sudo ./setup.py install

这样就算安装好了


Python2.x中文编码的处理

推荐这篇文章
归纳起来就是:Python2.x里有两种字符串类型(str和unicode),可以类比c++里的char和wchar_t
两者可以通过 decode 和 encode 互转

此外需要注意的是,编码正常情况下 print 会打印正确的字符,但pdb观察该变量则是转义符组成的值。这是内部机制的问题,只要print正确就好了


代码封装

建议使用 wqy-zenhei.ttc,测试了freetype自带的 Vera.ttf 和 windows下的 msyh.ttf,部分中文还是会乱码

算法核心参考这篇文章

#! /usr/bin
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值