然后你可以使用我的答案here中的代码用单声道间隔字体绘制 . 您只需要在评论"Get a drawing context"之后的3行 .
然后你可以转换回OpenCV图像:
OpenCVimage = np.array(PilImage)
这可能看起来像这样:
#!/usr/local/bin/python3
from PIL import Image, ImageFont, ImageDraw
import numpy as np
import cv2
# Open image with OpenCV
im_o = cv2.imread('start.png')
# Make into PIL Image
im_p = Image.fromarray(im_o)
# Get a drawing context
draw = ImageDraw.Draw(im_p)
monospace = ImageFont.truetype("/Library/Fonts/Andale Mono.ttf",32)
draw.text((40, 80),"Hopefully monospaced",(255,255,255),font=monospace)
# Convert back to OpenCV image and save
result_o = np.array(im_p)
cv2.imwrite('result.png', result_o)
1 回答
您可以非常轻松地使用PIL / Pillow . OpenCV图像是
numpy
数组,因此您可以使用以下命令从OpenCV图像制作枕头图像:然后你可以使用我的答案here中的代码用单声道间隔字体绘制 . 您只需要在评论"Get a drawing context"之后的3行 .
然后你可以转换回OpenCV图像:
这可能看起来像这样:
或者,您可以使用一个函数生成一块画布本身,在其上写下您的文本,然后将其拼接到您想要的任何地方的OpenCV图像中 . 这些方面的东西 - 虽然我不知道你需要什么灵活性所以我没有参数化所有东西: