opencv乱码java_opencv 放置文字 中文乱码处理 putText

函数说明

void cv::putText(

cv::Mat& img, // 待绘制的图像

const string& text, // 待绘制的文字

cv::Point origin, // 文本框的左下角

int fontFace, // 字体 (如cv::FONT_HERSHEY_PLAIN)

double fontScale, // 尺寸因子,值越大文字越大

cv::Scalar color, // 线条的颜色(RGB)

int thickness = 1, // 线条宽度

int lineType = 8, // 线型(4邻域或8邻域,默认8邻域)

bool bottomLeftOrigin = false // true='origin at lower left'

);

1f67ffdfb46e1da2565395d46026a2d9.png

import cv2

image = cv2.imread("img.png")

font = cv2.FONT_HERSHEY_SIMPLEX # 定义字体

# cv2.putText(image, u"paojie", (10, 130), 6, 5, (255, 0, 255), 5)

cv2.putText(image, "hello", (100, 200), 5, 5, (255, 0, 255), 5)

cv2.imshow("putTextPractice", image)

cv2.waitKey(0)

cv2.destroyAllWindows()

中文处理,使用PIL中转一下

1283f4982e059adfb9024fc27bb2852f.png

import cv2

from PIL import Image, ImageDraw, ImageFont

import numpy as np

cv2.namedWindow("mark", cv2.WINDOW_AUTOSIZE)

image = cv2.imread("img.png")

cv2_im = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # cv2和PIL中颜色的hex码的储存顺序不同

pil_im = Image.fromarray(cv2_im)

draw = ImageDraw.Draw(pil_im) # 括号中为需要打印的canvas,这里就是在图片上直接打印

font = ImageFont.truetype("font.ttf", 20, encoding="utf-8") # 第一个参数为字体文件路径,第二个为字体大小

draw.text((0, 0), "eg:打印在这里", (0, 0, 255), font=font) # 第一个参数为打印的坐标,第二个为打印的文本,第三个为字体颜色,第四个为字体

cv2_text_im = cv2.cvtColor(np.array(pil_im), cv2.COLOR_BGR2RGB)

cv2.imshow("Video", cv2_text_im)

cv2.waitKey(0)

cv2.destroyAllWindows()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值