我使用 C++ 和 OpenCV 创建了一个框架,并想在其中插入几行文本。
使用以下代码:
putText(frame, "My text here", cvPoint(30,30),
FONT_HERSHEY_COMPLEX_SMALL, 0.8, cvScalar(200,200,250), 1, CV_AA);
但在这里,我想写,假设有两行,“你好”和“欢迎”。
这里的问题是 \n 和 endl 不起作用。
另外,如果可能的话,将文本对齐到框架的中间。
非常感谢。
你需要打电话putText()
分别为每行。为了计算每条新线的位置,您可以使用getTextSize()
它返回文本的宽度和高度以及基线。在Python中你可以做这样的事情:
position = (30, 30)
text = "Some text including newline \n characters."
font_scale = 0.75
color = (255, 0, 0)
thickness = 3
font = cv2.FONT_HERSHEY_SIMPLEX
line_type = cv2.LINE_AA
text_size, _ = cv2.getTextSize(text, font, font_scale, thickness)
line_height = text_size[1] + 5
x, y0 = position
for i, line in enumerate(text.split("\n")):
y = y0 + i * line_height
cv2.putText(frame,
line,
(x, y),
font,
font_scale,
color,
thickness,
line_type)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)