上面的答案并没有解决我的问题。
我cv2.putText()
用来在视频上放置文字。
这可以按预期工作,但我正在尝试使用不同的字体(在 OpenCV 中不可用)。
我知道 OpenCV 仅限于cv2.FONT_HERSHEY
字体,所以我使用 PIL 和 OpenCV 来实现这一点。
我对图像使用了这种方法,并且该实验是成功的。但是当我在视频上尝试类似的东西时我失败了。
import cv2
from PIL import ImageFont, ImageDraw, Image
camera = cv2.VideoCapture('some_video.wmv')
while cv2.waitKey(30) < 0:
rv, frame = camera.read()
if rv:
font = ImageFont.truetype("calibrii.ttf", 80)
cv2.putText(frame, 'Hello World!', (600, 600), font, 2.8, 255)
cv2.imshow('Video', frame)
我在同一目录中有“calibrii.ttf”,正如我所提到的,这种方法适用于图像。
这是错误:
cv2.putText(frame, 'Hello World!', (600, 600), font, 2.8, 255)
TypeError: an integer is required (got type FreeTypeFont)