在平常调试代码时,需要对视频添加一些文字说明,下面使用 Python 的 OpenCV 和 PIL 对一个视频进行添加文字

    1. import cv2
    2. from PIL import Image, ImageDraw, ImageFont
    3. import numpy as np
    4. cap = cv2.VideoCapture('video.avi') # 读取视频
    5. # Define the codec and create VideoWriter object
    6. fourcc = cv2.VideoWriter_fourcc(*'XVID')
    7. out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640,360)) # 输出视频参数设置
    8. while(cap.isOpened()):
    9. ret, frame = cap.read()
    10. if ret == True:
    11. # 在 frame 上显示一些信息
    12. img_PIL = Image.fromarray(frame[..., ::-1]) # 转成 PIL
    13. font = ImageFont.truetype('STZHONGS.TTF', 40) # 字体设置,Windows系统可以在 "C:\Windows\Fonts" 下查找
    14. text1 = "机器视觉CV"
    15. text2 = "目标检测DEMO"
    16. for i, te in enumerate(text1):
    17. position = (50, 20+i*50)
    18. draw = ImageDraw.Draw(img_PIL)
    19. draw.text(position, te, font=font, fill=(255,0,0))
    20. for i, te in enumerate(text2):
    21. position = (520, 10+i*40)
    22. draw = ImageDraw.Draw(img_PIL)
    23. draw.text(position, te, font=font, fill=(255,0,0))
    24. frame = cv2.cvtColor(np.asarray(img_PIL), cv2.COLOR_RGB2BGR)
    25. # write the frame
    26. cv2.imshow('frame', frame)
    27. out.write(frame)
    28. if cv2.waitKey(1) & 0xFF == ord('q'):
    29. break
    30. else:
    31. break
    32. # Release everything if job is finished
    33. cap.release()
    34. out.release()
    35. cv2.destroyAllWindows()

    image.png

    image.png