以上答案并不能解决我的问题。
我正在使用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)
cv2.putText
直接将文本放到视频中,这非常好用!只是 HERSHEY 字体实在太丑了。因此,我正在尝试避免以困难的方式进行操作,即逐个图像进行处理。 - Joe T. Boka