时间:2021-05-22
本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧
一、使用OpenCV
在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦。OpenCV中并没有使用自定义字体文件的函数,这不仅意味着我们不能使用自己的字体,而且意味着他无法显示中文字符。这还是非常要命的事情。而且他显示出来的文字位置也不太好控制。比如下面的代码,他想做的仅仅是显示数字3:
代码:
#coding=utf-8import cv2import numpy as npfrom pylab import *%matplotlib inlinefont=cv2.FONT_HERSHEY_SIMPLEX#使用默认字体im=np.zeros((50,50,3),np.uint8)#新建图像,注意一定要是uint8img=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,ImageDrawimport numpy as npfrom pylab import *%matplotlib inlinefont = 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能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在word中插入图片时,文字和图片有不同的排列方式,那么如何设置图片浮于文字上方呢?下面为大家介绍两种方法,一起来看看吧!软件名称:MicrosoftOffic
在word中插入图片时,文字和图片有不同的排列方式,那么如何设置图片浮于文字上方呢?下面为大家介绍两种方法,一起来看看吧! 步骤 1、首先,打开word
(以下方法最好是在中进行操作,而且需要懂一些html代码)添加关注链接的方法:在文字上添加,代码如下点我关注在图片上添加,分为两种1.直接在图片上添加,代码如下
我们知道,给JavaScript类添加原形(prototype)方法是很简单的。而且常用的有下面这两种方法,可是这两种方法在使用时有区别吗?JScriptCla
wps中的文字想要添加边框,该怎么添加边框呢?下面我们就来看看wps2019文字添加边框的两种方法。软件名称:wpsoffice2019正式版v11.1.0.1