By 凌顺

2019年9月12日

本示例使用的OpenCV版本是:4.1.1

运行Python的编辑器:Jupyter notebook

示例目的

通过使用PLI在图片上添加中文字符。

PIL(Python Imaging Library)是Python常用的图像处理库,而Pillow是PIL的一个友好Fork,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等。

实现代码

1,加载并显示图片

import cv2

import matplotlib.pyplot as plt

import numpy as np

from PIL import Image, ImageDraw, ImageFont #从PIL中加载所需要的库

img = cv2.imread('MakerOnsite-Logo.png')

plt.imshow(img)

显示读取到的图像

2,在图片上添加中文

我们需要先把字体文件放在同一工作目录下,

例如:本示例用的中英文字体是simsun.ttc。

#判断是否OpenCV图片类型,也就是numpy.ndarray数据类型

if (isinstance(img, np.ndarray)):

# 把img的numpy.ndarray数据类型格式化为PLI的Image图像数据类型

img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))

# 创建一个可以在给定图像上绘图的对象

draw = ImageDraw.Draw(img)

print("img type is {}".format(type(img))) #此时观察到img数据类型是 PIL.Image.Image

# 加载字体

fontText = ImageFont.truetype("simsun.ttc", 66, encoding="utf-8")

# 在图像上添加字符,中英文皆可

# 参数概述draw.text(坐标xy,添加文字,文字颜色,字体)

draw.text((100, 40), '创客出手!', (255,100,200), font=fontText)

# 转换回OpenCV可处理的图片类型,这样之后可以继续使用OpenCV或深度学习对图像进行树立

img = np.asarray(img)

print("img type is {}".format(type(img))) # 此时观察到img数据类型是 numpy.ndarray

3,显示图像

最后显示图像,

有时看到图片的文字有锯齿是因为plt的在Jupyter notebook中显示方式把图像压缩了,

通过使用无损保存图像,在打开图片可以看到清晰的图片。

plt.imshow(img)

程序说明

本示例,使用了第三方库PLI实现了中文文字在图像上的添加。

值得注意的有2点:

数据类型的转换

当img还是PIL.Image.Image数据时,可以在代码块中输入img,直接输出图片原图

字体的存放位置

python绘制汉字_OpenCV Python 绘制中文字相关推荐

  1. python 创建画板_OpenCV +Python 制作画板

    首先声明一下,本例思路不是博主原创,博主在前人的代码上进行了个性化的修改,制作了一个简单的画图工具.下面附上自己的理解,与君共勉. 效果图 画图工具实现 代码 # coding:utf-8 impor ...

  2. python opencv 摄像头_opencv python中摄像头参数的设置

    我正在使用Windows7 64位操作系统以及Python3和OpenCV.我的电脑连接到以下型号的两个罗技网络摄像头: 1)罗技高清网络摄像头C615 2) 罗技QuickCam Pro 9000 ...

  3. python 椭圆检测_opencv python中的椭圆检测

    我的图片在这里: 我正在寻找更好的解决方案或算法来检测这张照片中的椭圆形部分(盘),并在Opencv中的另一张照片中对其进行遮罩. 你能给我一些建议或解决方案吗? 我的代码是: circles = c ...

  4. python椭圆特征识别_opencv python中的椭圆检测

    Xie,Yonghong和Qiang Ji制作的skimage中有另一种替代方法,并出版为- "A new efficient ellipse detection method." ...

  5. python椭圆识别_opencv python中的椭圆检测

    Xie,Yonghong和Qiang Ji制作的skimage中有另一种替代方法,并出版为- "A new efficient ellipse detection method." ...

  6. python opencv保存图片_OpenCV Python 保存图片

    By 凌顺 2019年9月12日 本示例使用的OpenCV版本是:4.1.1 运行Python的编辑器:Jupyter notebook 示例目的 通过无损和有损的方式进行图片保存. 实现代码 1,加 ...

  7. python制作礼物_opencv+python制作硬核七夕礼物

    点击上方"蓝色小字"关注我呀 明天就是七夕了! 如果有对象,祝早生贵子!没有对象,祝早结连理! (搞笑一下,祝大家幸福美满吧,嘿嘿嘿) 给大家准备了一份已经写好的代码,利用pyth ...

  8. python均值滤波_opencv+python实现均值滤波

    本文实例为大家分享了opencv+python实现均值滤波的具体代码,供大家参考,具体内容如下 原理 均值滤波其实就是对目标像素及周边像素取平均值后再填回目标像素来实现滤波目的的方法,当滤波核的大小是 ...

  9. python 超参数_OpenCV python sklearn随机超参数搜索的实现

    """ 房价预测数据集 使用sklearn执行超参数搜索 """ import matplotlib as mpl import matpl ...

最新文章

  1. VTK:可视化之NamedColors
  2. vue打开后端html文件,vue中怎么请求后端数据?
  3. vue中Router的封装以及使用
  4. 文献学习(part30)--Clustering of temporal gene expression data by regularized spline regression and...
  5. 计算机硬件:关于CPU的12个硬核干货!
  6. mysql 主从 通俗易懂_MySQL 主从同步架构中你不知道的“坑”(完结篇)
  7. C语言课后习题(57)
  8. SharePoint 2010 technology stack
  9. [转载] Python Pandas 转换unix时间戳
  10. Webpack的基本配置
  11. unity 切换场景
  12. sqlserver 附加数据库失败,操作系统错误 5:5(拒绝访问。)的解决办法
  13. matlab怎样画一个立方体,matlab画立方体
  14. 《如何高效阅读一本书》学习笔记
  15. 基础操作案例:ArcGIS PRO基础教程(二)
  16. 美团2021校招笔试-编程题(通用编程试题,第10场)
  17. 你没看错!TCL品牌日10万台洗衣机免费送
  18. 央妈是怎么印钱的(1)--资产负债表
  19. 【NLP】word2vec词向量模型训练——基于tensorflow
  20. 二三四五再被监管点名:弹窗过多过频过大,上半年业绩下滑约七成

热门文章

  1. web项目调整项目名称_如何有效调整软件项目范围
  2. 微处理器硬件喂狗_硬件基础:微控制器到底是什么?
  3. c++ vscode 自动注释_VS2015自动添加注释
  4. vscode用作markdown入门2--代码上下标目录字体
  5. 一步一步教你Pycharm的配置Python环境
  6. 使用Vscode进行Python开发环境配置
  7. 【CCF】201703-1分蛋糕
  8. 手机访问内网IIS服务器网页的方法
  9. ext2.0 主体皮肤 (xtheme-black)
  10. exists 实现查看表Activity中FmyId=1(具体数字在程序中动态给定)的好友发起的活动