亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python OpenCV實(shí)現(xiàn)圖片上輸出中文

 更新時(shí)間:2018年01月22日 15:21:54   作者:-牧野-  
這篇文章主要為大家詳細(xì)介紹了Python OpenCV實(shí)現(xiàn)圖片上輸出中文,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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)文章

最新評(píng)論