Python OpenCV實現(xiàn)圖片上輸出中文
OpenCV中在圖片上輸出中文一般需要借助FreeType庫實現(xiàn)。FreeType庫是一個完全免費(fèi)(開源)的、高質(zhì)量的且可移植的字體引擎,它提供統(tǒng)一的接口來訪問多種字體格式文件。但使用FreeType需要下載庫并重新編譯,過程麻煩一點(diǎn)。
在Python中,可以借助PIL(Python Imaging Library)模塊實現(xiàn),相對簡單很多,需要做的只是對圖像進(jì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ī)上已經(jīng)下載的字體:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Django media static外部訪問Django中的圖片設(shè)置教程
這篇文章主要介紹了Django media static外部訪問Django中的圖片設(shè)置教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Django中數(shù)據(jù)庫的數(shù)據(jù)關(guān)系:一對一,一對多,多對多
今天小編就為大家分享一篇關(guān)于Django中數(shù)據(jù)庫的數(shù)據(jù)關(guān)系:一對一,一對多,多對多,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10Tensorflow實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的詳細(xì)代碼
這篇文章主要為大家詳細(xì)介紹了Tensorflow實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的詳細(xì)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05python使用tqdm模塊處理文件閱讀進(jìn)度條顯示
這篇文章主要為大家介紹了python使用tqdm模塊處理文件閱讀顯示進(jìn)度條示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09