Python OpenCV實(shí)現(xiàn)圖片上輸出中文
OpenCV中在圖片上輸出中文一般需要借助FreeType庫(kù)實(shí)現(xiàn)。FreeType庫(kù)是一個(gè)完全免費(fèi)(開(kāi)源)的、高質(zhì)量的且可移植的字體引擎,它提供統(tǒng)一的接口來(lái)訪問(wèn)多種字體格式文件。但使用FreeType需要下載庫(kù)并重新編譯,過(guò)程麻煩一點(diǎn)。
在Python中,可以借助PIL(Python Imaging Library)模塊實(shí)現(xiàn),相對(duì)簡(jiǎn)單很多,需要做的只是對(duì)圖像進(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)下載的字體:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python OpenCV對(duì)圖像進(jìn)行模糊處理詳解流程
OpenCV是一個(gè)基于BSD許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列 C 函數(shù)和少量 C++ 類(lèi)構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語(yǔ)言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面很多通用算法2021-10-10
Python入門(mén)教程(三十九)Python的NumPy安裝與入門(mén)
這篇文章主要介紹了Python入門(mén)教程(三十九)Python的NumPy安裝與入門(mén),NumPy 是一個(gè)Python包,它是一個(gè)由多維數(shù)組對(duì)象和用于處理數(shù)組的例程集合組成的庫(kù),,需要的朋友可以參考下2023-05-05
玩轉(zhuǎn)python爬蟲(chóng)之URLError異常處理
這篇文章主要介紹了python爬蟲(chóng)的URLError異常處理,詳細(xì)探尋一下URL\HTTP異常處理的相關(guān)內(nèi)容,通過(guò)一些具體的實(shí)例來(lái)分析一下,非常的簡(jiǎn)單,但是卻很實(shí)用,感興趣的小伙伴們可以參考一下2016-02-02
Python實(shí)現(xiàn)自動(dòng)識(shí)別數(shù)字驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了如何使用Python來(lái)自動(dòng)識(shí)別數(shù)字驗(yàn)證碼,以便在需要時(shí)自動(dòng)填寫(xiě)或驗(yàn)證驗(yàn)證碼,有需要的小伙伴可以參考一下2024-04-04
python嵌套字典比較值與取值的實(shí)現(xiàn)示例
這篇文章主要給大家介紹了關(guān)于python嵌套字典比較值與取值的實(shí)現(xiàn)方法,詳細(xì)介紹了python字典嵌套字典的情況下獲取某個(gè)key的value的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),需要的朋友們下面來(lái)一起看看吧。2017-11-11
對(duì)Python的交互模式和直接運(yùn)行.py文件的區(qū)別詳解
今天小編就為大家分享一篇對(duì)Python的交互模式和直接運(yùn)行.py文件的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06

