簡述
準備
效果圖
結語
#我在使用opencv2或3的時候想要在圖片上加入中文文字,需要去下載Freetype函式庫,編譯好連結到opencv函式庫才能中文的輸出。網路上大部分在圖片中插入中文的教學還是win+vs的設定教學。像我這種win下有環境,linux下有環境的人來說,想要同步程式碼無疑有點麻煩。還好有替代方法,也就是接下來要將的例子pillow。 準備
#或conda install pillow
下一個支援中文的字型庫
搜尋關鍵字:ttf 字型。 下載一個你喜歡的字體風格庫,文件的後綴一般為ttf。我下載了一個微軟雅黑庫,檔案名稱就是
msyh.ttf#範例
首先新建一個python檔案:
draw_chinese .py
。範例程式碼ipython-notebook風格請去這裡
import cv2from PIL import Image,ImageFont,ImageDrawfrom matplotlib.pyplot import imshowimport numpy as npImage
:物件的實例代表一張圖片,可以進行一些大小變換和仿射變換操作
ImageDraw
: 基於image對象,建立一個可以在
rrreee
img = Image.new(mode="RGB",size=(400,150),color=(120,20,20)) #或者从numpy对象中创建也行。可以把opencv的图片转为numpy,通过numpy连接两个图像处理库。 #img = Image.fromarray(numpy_object) img.show()###4.新建一個畫布###
path_to_ttf = r'data/msyh.ttf' font = ImageFont.truetype(path_to_ttf, size=25) #size 确定一个汉字的大小###6 .在畫布上肆意妄為###
draw = ImageDraw.Draw( img )###效果圖##################結語######這個方法不用自己去下載編譯Freetype函式庫, pillow的安裝也很簡單。寫好後的程式碼python2,python3皆可用。跨平台也沒事。算是曲線解決了opencv原生不支援中文字體的問題了吧。 ###pillow這個函式庫可以做一部分opencv的工作,到現在我發現一個比較常用但是pillow沒有的設定就是畫矩形框的時候不能設定矩形框邊線的寬度,需要自己手動實作:每次在原有基礎上增加或減少一個像素點的座標位置重複畫框,達到增加寬度的效果。而opencv只需要給一個width參數就可以了。 ###
以上是詳解PILLOW圖片中加入中文的實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!