您好,登錄后才能下訂單哦!
小編給大家分享一下Python OpenCV如何實現圖片上輸出中文,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
OpenCV中在圖片上輸出中文一般需要借助FreeType庫實現。FreeType庫是一個完全免費(開源)的、高質量的且可移植的字體引擎,它提供統一的接口來訪問多種字體格式文件。但使用FreeType需要下載庫并重新編譯,過程麻煩一點。
在Python中,可以借助PIL(Python Imaging Library)模塊實現,相對簡單很多,需要做的只是對圖像進行OpenCV格式和PIL格式的相互轉換。
# -*- coding: utf-8 -*- import cv2 import numpy from PIL import Image, ImageDraw, ImageFont if __name__ == '__main__': img_OpenCV = cv2.imread('01.jpg') # 圖像從OpenCV格式轉換成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) # 輸出內容 str = '在圖片上輸出中文' # 需要先把輸出的中文字符轉換成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') # 轉換回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指令查找本機上已經下載的字體:
以上是“Python OpenCV如何實現圖片上輸出中文”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。