OpenCV添加中文(五)
生活随笔
收集整理的這篇文章主要介紹了
OpenCV添加中文(五)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
OpenCV添加文字的方法putText(…),添加英文是沒有問題的,但如果你要添加中文就會出現(xiàn)“???”的亂碼,需要特殊處理一下。
下文提供封裝好的(代碼)方法,供OpenCV添加中文使用。
往期目錄
視頻人臉檢測——Dlib版(六)
OpenCV添加中文(五)
圖片人臉檢測——Dlib版(四)
視頻人臉檢測——OpenCV版(三)
圖片人臉檢測——OpenCV版(二)
OpenCV環(huán)境搭建(一)
更多更新,歡迎訪問我的github:https://github.com/vipstone/faceai
效果預(yù)覽
實現(xiàn)思路
使用PIL的圖片繪制添加中文,可以指定字體文件,那么也就是說使用PIL可以實現(xiàn)中文的輸出。
有思路之后,接下來的工作就簡單了。
代碼分解
OpenCV圖片轉(zhuǎn)換為PIL圖片格式
img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))使用PIL繪制文字
draw = ImageDraw.Draw(img) fontText = ImageFont.truetype("font/simsun.ttc", textSize, encoding="utf-8") draw.text((left, top), "文字內(nèi)容", textColor, font=fontText)字體文件為:simsun.ttc,Windows可以在C:\Windows\Fonts下面查找。
PIL圖片格式轉(zhuǎn)換成OpenCV的圖片格式
cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)完整代碼
封裝好的完整方法
#coding=utf-8 #中文亂碼處理import cv2 import numpy from PIL import Image, ImageDraw, ImageFontdef cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):if (isinstance(img, numpy.ndarray)): #判斷是否OpenCV圖片類型img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))draw = ImageDraw.Draw(img)fontText = ImageFont.truetype("font/simsun.ttc", textSize, encoding="utf-8")draw.text((left, top), text, textColor, font=fontText)return cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)代碼調(diào)用
img = cv2ImgAddText(img, "大家好,我是星爺", 140, 60, (255, 255, 0), 20)總結(jié)
以上是生活随笔為你收集整理的OpenCV添加中文(五)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美团面试题 | JVM 堆内存溢出后,其
- 下一篇: 集合使用与内部实现原理