欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python在圖片中添加文字的兩種方法

 更新時(shí)間:2017年04月29日 15:19:03   作者:Myths  
這篇文章主要給大家介紹了在Python在圖片中添加文字的兩種方法,分別是使用OpenCV和PIL這兩個(gè)方法實(shí)現(xiàn),在實(shí)際應(yīng)用中要在這兩種方法中擇優(yōu)使用。兩種方法都給出了詳細(xì)示例代碼,需要的朋友可以參考下。

本文主要介紹的是利用Python在圖片中添加文字的兩種方法,下面分享處理供大家參考學(xué)習(xí),下來要看看吧

一、使用OpenCV

在圖片中添加文字看上去很簡單,但是如果是利用OpenCV來做卻很麻煩。OpenCV中并沒有使用自定義字體文件的函數(shù),這不僅意味著我們不能使用自己的字體,而且意味著他無法顯示中文字符。這還是非常要命的事情。而且他顯示出來的文字位置也不太好控制。比如下面的代碼,他想做的僅僅是顯示數(shù)字3:

代碼:

#coding=utf-8
import cv2
import numpy as np
from pylab import *
%matplotlib inline
font=cv2.FONT_HERSHEY_SIMPLEX#使用默認(rèn)字體
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表示粗細(xì)
imshow(img)

結(jié)果:

我么可以發(fā)現(xiàn)文字出現(xiàn)的位置并不怎么好把握,初始的坐標(biāo)默認(rèn)是指左下角的坐標(biāo),不怎么方便。而且顯示出文字以后,我們不好掌握他實(shí)際占的位置和大小。

不過有一點(diǎn)方便的是,我們可以隨意改變他的粗細(xì),而不用更換字體。這一點(diǎn)是下面使用PIL進(jìn)行繪圖所不具備的優(yōu)點(diǎn)。

二、使用PIL

同樣為了生成數(shù)字3,下面是使用PIL進(jìn)行的操作:

代碼:

import Image,ImageFont,ImageDraw
import numpy as np
from pylab import *
%matplotlib inline
font = ImageFont.truetype('3.ttf',50) #使用自定義的字體,第二個(gè)參數(shù)表示字符大小
im = Image.new("RGB",(50,50))      #生成空白圖像
draw = ImageDraw.Draw(im)         #繪圖句柄
x,y=(0,0)                  #初始左上角的坐標(biāo)
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)

結(jié)果:

我們可以發(fā)現(xiàn),PIL支持使用自定義的字體文件,而且能夠提供字體所占位置的詳細(xì)信息,我們可以精確的確定文字所占的位置,在應(yīng)用中特別有用。唯一的不足就是他不能改變字體的粗細(xì)(畢竟這用的是字體模板)。

實(shí)際應(yīng)用中看來還要在這兩種方法中擇優(yōu)使用。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或者使用python能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

  • python人工智能tensorflow常見損失函數(shù)LOSS匯總

    python人工智能tensorflow常見損失函數(shù)LOSS匯總

    這篇文章主要為大家介紹了python人工智能tensorflowf常見損失函數(shù)LOSS匯總,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 基于Python獲取docx/doc文件內(nèi)容代碼解析

    基于Python獲取docx/doc文件內(nèi)容代碼解析

    這篇文章主要介紹了基于Python獲取docx/doc文件內(nèi)容代碼解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Pycharm之快速定位到某行快捷鍵的方法

    Pycharm之快速定位到某行快捷鍵的方法

    今天小編就為大家分享一篇Pycharm之快速定位到某行快捷鍵的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • pygame時(shí)序模塊time的具體使用

    pygame時(shí)序模塊time的具體使用

    Pygame Time模塊能夠幫助你更好地控制幀率和時(shí)間,從而增強(qiáng)游戲的可玩性,本文主要介紹了pygame時(shí)序模塊time的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • Python使用擴(kuò)展庫pywin32實(shí)現(xiàn)批量文檔打印實(shí)例

    Python使用擴(kuò)展庫pywin32實(shí)現(xiàn)批量文檔打印實(shí)例

    這篇文章主要介紹了Python使用擴(kuò)展庫pywin32實(shí)現(xiàn)批量文檔打印實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 解決python mysql insert語句的問題

    解決python mysql insert語句的問題

    這篇文章主要介紹了解決python mysql insert語句的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 使用Python的Dataframe取兩列時(shí)間值相差一年的所有行方法

    使用Python的Dataframe取兩列時(shí)間值相差一年的所有行方法

    今天小編就為大家分享一篇使用Python的Dataframe取兩列時(shí)間值相差一年的所有行方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python callable內(nèi)置函數(shù)原理解析

    Python callable內(nèi)置函數(shù)原理解析

    這篇文章主要介紹了Python callable內(nèi)置函數(shù)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python+Turtle繪制可愛的小蜜蜂詳解

    Python+Turtle繪制可愛的小蜜蜂詳解

    turtle庫是一個(gè)點(diǎn)線面的簡單圖像庫,在Python2.6之后被引入進(jìn)來,能夠完成一些比較簡單的幾何圖像可視化。本文將利用turtle繪制一個(gè)可愛的小蜜蜂,感興趣的可以試一試
    2022-05-05
  • 最新評(píng)論