OpenCV新增中文(五)

2021-08-22 19:15:14 字數 1505 閱讀 9362

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的繪製新增中...