opencv新增文字的方法puttext(...),新增英文是沒有問題的,但如果你要新增中文就會出現「???」的亂碼,需要特殊處理一下。
下文提供封裝好的(**)方法,供opencv新增中文使用。
使用pil的繪製新增中文,可以指定字型檔案,那麼也就是說使用pil可以實現中文的輸出。
有思路之後,接下來的工作就簡單了。
opencv格式轉換成pil的格式;
使用pil繪製文字;
pil格式轉換成opencv的格式;
opencv轉換為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), "文字內容", textcolor, font=fonttext)
字型檔案為:simsun.ttc,windows可以在c:\windows\fonts下面查詢。
pil格式轉換成opencv的格式
cv2.cvtcolor(numpy.asarray(img), cv2.color_rgb2bgr)
封裝好的完整方法
#coding=utf-8
#中文亂碼處理
import cv2
import numpy
from pil import image, imagedraw, imagefont
def 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)
**調 OpenCV新增中文(五)
opencv新增文字的方法puttext 新增英文是沒有問題的,但如果你要新增中文就會出現 的亂碼,需要特殊處理一下。下文提供封裝好的 方法,供opencv新增中文使用。opencv新增中文 五 人臉檢測 dlib版 四 人臉檢測 opencv版 二 opencv環境搭建 一 使用pil的繪製新增中...
OpenCV新增中文(五)
opencv新增文字的方法puttext 新增英文是沒有問題的,但如果你要新增中文就會出現 的亂碼,需要特殊處理一下。下文提供封裝好的 方法,供opencv新增中文使用。opencv新增中文 五 人臉檢測 dlib版 四 人臉檢測 opencv版 二 opencv環境搭建 一 使用pil的繪製新增中...
OpenCV新增中文(五)
opencv新增文字的方法puttext 新增英文是沒有問題的,但如果你要新增中文就會出現 的亂碼,需要特殊處理一下。下文提供封裝好的 方法,供opencv新增中文使用。opencv新增中文 五 人臉檢測 dlib版 四 人臉檢測 opencv版 二 opencv環境搭建 一 使用pil的繪製新增中...