cv2.cvPutText python
时间: 2024-06-08 11:12:36 浏览: 9
cv2.putText()函数是OpenCV中用于在图像上绘制文本的函数。当在cv2.putText()函数中使用中文时,由于编码问题,可能会导致显示乱码。
为了解决这个问题,可以使用PIL库中的ImageFont.truetype()函数来加载中文字体,然后将其传递给cv2.putText()函数以正确显示中文。在给定的代码中,使用了宋体(simsun.ttc)字体来绘制文本,具体的代码如下:
```
import cv2
import numpy as np
from PIL import Image, ImageDraw, ImageFont
def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):
if (isinstance(img, np.ndarray)):
img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
draw = ImageDraw.Draw(img)
fontStyle = ImageFont.truetype("simsun.ttc", textSize, encoding="utf-8")
draw.text((left, top), text, textColor, font=fontStyle)
return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)
img = cv2ImgAddText(cv2.imread('img1.jpg'), "hello中文", 10, 65, (0, 0 , 139), 20)
cv2.imshow('show', img)
cv2.waitkey(0)
```
这段代码首先定义了一个名为cv2ImgAddText()的自定义函数,该函数接受一张图像、文本内容以及文本的位置和样