python3 + opencv +numpy+pil 图像上输出中文

利用PIL库在图像上输出中文

1、安装PIL库

pip教程利用镜像安装库教程

2、过程实现

①利用OpenCV读取的是BGR通道的图片,而PIL所采用的的是RGB通道的图片,所以在读取图像之后进行一次颜色格式的转换。

import cv2 as cv
import numpy as np
from PIL import Image,ImageDraw,ImageFont

image_bgr = cv.imread("C:/Users/liushuizhou/Desktop/chepai.bmp")
#bgr转成rgb
image_rgb = cv.cvtColor(image_bgr,cv.COLOR_BGR2RGB)

②将OpenCV格式转换为PIL格式。

#OpenCV 转成 PIL
image_pil = Image.fromarray(image_rgb)

③利用Draw()函数创建一个画布(之后的绘制是在画布上进行)。

#创建一个可绘制的对象 在原图上绘制
draw = ImageDraw.Draw(image_pil)

④定义文字位置内容字体格式与大小字体颜色

#文字位置 左上角的坐标(x,y)
position = (202,202)
#字体 字体与大小
font = ImageFont.truetype("C:/Windows/Fonts/HGXBS_CNKI.TTF", 20)
#颜色 rgb格式
fill = (255,255,0)

⑤进行文字绘制

draw.text(position,"输出文字",fill,font)

⑥将图像从PIL格式转为OpenCV格式,并进行图像的显示。

#PIL 到 OpenCV
image = cv.cvtColor(np.asarray(image_pil), cv.COLOR_RGB2BGR)

cv.imshow("image",image)
cv.waitKey()
cv.destroyAllWindows()

⑦效果
python3 + opencv +numpy+pil 图像上输出中文_第1张图片

3、注意事项

在第④步定义文字格式与大小时,所采用的是操作系统自带的字体格式。系统路径为:C:\Windows\Fonts

你可能感兴趣的:(python,opencv,计算机视觉)