Python OpenCV實現(xiàn)圖片上輸出中文
OpenCV中在圖片上輸出中文一般需要借助FreeType庫實現(xiàn)。FreeType庫是一個完全免費(開源)的、高質(zhì)量的且可移植的字體引擎,它提供統(tǒng)一的接口來訪問多種字體格式文件。但使用FreeType需要下載庫并重新編譯,過程麻煩一點。
在Python中,可以借助PIL(Python Imaging Library)模塊實現(xiàn),相對簡單很多,需要做的只是對圖像進行OpenCV格式和PIL格式的相互轉(zhuǎn)換。
# -*- coding: utf-8 -*-
import cv2
import numpy
from PIL import Image, ImageDraw, ImageFont
if __name__ == '__main__':
img_OpenCV = cv2.imread('01.jpg')
# 圖像從OpenCV格式轉(zhuǎn)換成PIL格式
img_PIL = Image.fromarray(cv2.cvtColor(img_OpenCV, cv2.COLOR_BGR2RGB))
# 字體 字體*.ttc的存放路徑一般是: /usr/share/fonts/opentype/noto/ 查找指令locate *.ttc
font = ImageFont.truetype('NotoSansCJK-Black.ttc', 40)
# 字體顏色
fillColor = (255,0,0)
# 文字輸出位置
position = (100,100)
# 輸出內(nèi)容
str = '在圖片上輸出中文'
# 需要先把輸出的中文字符轉(zhuǎn)換成Unicode編碼形式
if not isinstance(str, unicode):
str = str.decode('utf8')
draw = ImageDraw.Draw(img_PIL)
draw.text(position, str, font=font, fill=fillColor)
# 使用PIL中的save方法保存圖片到本地
# img_PIL.save('02.jpg', 'jpeg')
# 轉(zhuǎn)換回OpenCV格式
img_OpenCV = cv2.cvtColor(numpy.asarray(img_PIL),cv2.COLOR_RGB2BGR)
cv2.imshow("print chinese to image",img_OpenCV)
cv2.waitKey()
cv2.imwrite('03.jpg',img_OpenCV)
輸出效果:

字體 *.ttc的存放路徑一般是: /usr/share/fonts/opentype/noto/
可以使用locate指令查找本機上已經(jīng)下載的字體:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Django media static外部訪問Django中的圖片設置教程
這篇文章主要介紹了Django media static外部訪問Django中的圖片設置教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Django中數(shù)據(jù)庫的數(shù)據(jù)關系:一對一,一對多,多對多
今天小編就為大家分享一篇關于Django中數(shù)據(jù)庫的數(shù)據(jù)關系:一對一,一對多,多對多,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10
Tensorflow實現(xiàn)卷積神經(jīng)網(wǎng)絡的詳細代碼
這篇文章主要為大家詳細介紹了Tensorflow實現(xiàn)卷積神經(jīng)網(wǎng)絡的詳細代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05

