本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧

一、使用OpenCV

在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦。OpenCV中并没有使用自定义字体文件的函数,这不仅意味着我们不能使用自己的字体,而且意味着他无法显示中文字符。这还是非常要命的事情。而且他显示出来的文字位置也不太好控制。比如下面的代码,他想做的仅仅是显示数字3:

代码:

#coding=utf-8

import cv2

import numpy as np

from pylab import *

%matplotlib inline

font=cv2.FONT_HERSHEY_SIMPLEX#使用默认字体

im=np.zeros((50,50,3),np.uint8)#新建图像,注意一定要是uint8

img=cv2.putText(im,'3',(0,40),font,1.2,(255,255,255),2)#添加文字,1.2表示字体大小,(0,40)是初始的位置,(255,255,255)表示颜色,2表示粗细

imshow(img)

结果:

我么可以发现文字出现的位置并不怎么好把握,初始的坐标默认是指左下角的坐标,不怎么方便。而且显示出文字以后,我们不好掌握他实际占的位置和大小。

不过有一点方便的是,我们可以随意改变他的粗细,而不用更换字体。这一点是下面使用PIL进行绘图所不具备的优点。

二、使用PIL

同样为了生成数字3,下面是使用PIL进行的操作:

代码:

import Image,ImageFont,ImageDraw

import numpy as np

from pylab import *

%matplotlib inline

font = ImageFont.truetype('3.ttf',50) #使用自定义的字体,第二个参数表示字符大小

im = Image.new("RGB",(50,50))      #生成空白图像

draw = ImageDraw.Draw(im)         #绘图句柄

x,y=(0,0)                  #初始左上角的坐标

draw.text((x,y), '3', font=font)    #绘图

offsetx,offsety=font.getoffset('3')  #获得文字的offset位置

width,height=font.getsize('3')     #获得文件的大小

im=np.array(im)

cv2.rectangle(im,(offsetx+x,offsety+y),(offsetx+x+width,offsety+y+height),(255,255,255),1)#绘出矩形框

imshow(im)

结果:

我们可以发现,PIL支持使用自定义的字体文件,而且能够提供字体所占位置的详细信息,我们可以精确的确定文字所占的位置,在应用中特别有用。唯一的不足就是他不能改变字体的粗细(毕竟这用的是字体模板)。

实际应用中看来还要在这两种方法中择优使用。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用python能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

python怎么编辑图片中的文字_Python在图片中添加文字的两种方法相关推荐

  1. python怎么在图片上写字_Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  2. python如何在图片上添加文字_Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  3. 怎样在python的turtle中输入文字_Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  4. 怎么在python中添加文字_Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  5. python如何在图片上添加文字_python在图片中添加文字学习文档

    一开始出现错误如下: 原因为0000.JPG前应该是\而不是.修改后,运行以下代码,报错: 查阅资料后,加上了字体文件的路径 运行以下代码后,仍有相同的报错 from PIL import Image ...

  6. python读取指定行到最后一行_python读取文件最后一行两种方法

    原博文 2018-09-27 13:58 − 1)常规方法:从前往后依次读取 步骤:open打开文件. ... 相关推荐 2019-09-28 21:13 − Python python是一种跨平台的 ...

  7. python读取文件最后几行_python读取文件最后一行两种方法

    1)常规方法:从前往后依次读取 步骤:open打开文件. 读取文件,把文件所有行读入内存. 遍历所有行,提取指定行的数据. 优点:简单,方便 缺点:当文件大了以后时间太慢,无法忍受 2)推荐方法: 步 ...

  8. python右对齐格式化输出_Python中格式化输出的两种方法介绍

    本篇文章给大家带来的内容是关于Python中格式化输出的两种方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 方式一:使用占位符 % 常用占位符:% s (s = string ...

  9. python 学习系列(3) 读取并显示图片的两种方法

    python 读取并显示图片的两种方法 在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 mat ...

  10. python演示验证图像叠加过程_Python叠加矩形框图层2种方法及效果代码实例

    本篇文章小编给大家分享一下Python叠加矩形框图层2种方法及效果代码实例,代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 两种方式以及效果: 方式一,使用 ...

最新文章

  1. SAP MM供应商主数据表
  2. c++ocx交互检测弹框_吉利几何C:2022杭州亚运会移动“明信片”!
  3. 面试:说说你对“零拷贝”的理解?
  4. 通过Matrix进行二维图形仿射变换
  5. DYNP_VALUES_READ 获取屏幕动态值
  6. win10安装问题小结
  7. boost::process::system相关的测试程序
  8. GoogLeNet学习
  9. 3d 自动生成物体_根据 2D 图片自动生成 3D 图书封面的牛逼工具
  10. apache2.4打开laravel项目_Laravel异步队列全攻略
  11. mysql 写出高性能sql 防止索引失效总结
  12. 邮件签名html qq,腾讯企业邮箱发件人名称与个性签名的设置方法
  13. c语言缺陷与陷阱,《C语言的缺陷与陷阱》读后总结
  14. RTK差分通讯链路---电台
  15. Windows XP将显示桌面图标放到任务栏
  16. Excel快捷键大全和35个函数---第二弹
  17. C++大型项目开发约束
  18. 英语发音之音标4---长元音法()
  19. lcd调色板工作原理详解
  20. 正牌韦小宝之奉旨沟女 解说

热门文章

  1. Qt开发总结(19)——Qt Charts
  2. 大话设计模式6—模板方法模式(考试抄题)
  3. SpringBoot基础
  4. php验证是否是jwt,php实现JWT认证的方法 JWT验证使用流程
  5. Excel将xlsx后缀格式的宏文件转为xlsm格式?
  6. 系统崩溃分析 - vmcore 加载到 Trace32
  7. nyoj 191 小柯的问题
  8. 支付宝快捷支付服务 android,图文详解Android下支付宝快捷支付教程
  9. 浅谈Android支付宝快捷支付
  10. win10计算机系统优化设置,这些简单优化能让你的Win10流畅很多