【问题标题】:How I Can insert images on Captured video in Python如何在 Python 中的捕获视频上插入图像
【发布时间】:2019-10-15 16:52:49
【问题描述】:

我使用 cv2.VideoCapured 捕获视频并显示。同一时间捕获的视频显示未保存。如何在此捕获的视频上插入图像以同时显示。

【问题讨论】:

  • 你的问题不够清楚。请澄清您的视频来源,是视频文件还是来自相机?如果您的源是视频文件,为什么需要在显示时保存?还是要保存摄像头获取的视频?

标签: python opencv image-processing cv2


【解决方案1】:

假设您想将图像直接添加到某个 x,y 位置的视频帧,而不进行任何颜色混合或图像透明度。你可以使用下面的python代码:

#!/usr/bin/python3

import cv2

# load the overlay image. size should be smaller than video frame size
img = cv2.imread('logo.png')

# Get Image dimensions
img_height, img_width, _ = img.shape

# Start Capture
cap = cv2.VideoCapture(0)

# Get frame dimensions
frame_width  = cap.get(cv2.CAP_PROP_FRAME_WIDTH )
frame_height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT )

# Print dimensions
print('image dimensions (HxW):',img_height,"x",img_width)
print('frame dimensions (HxW):',int(frame_height),"x",int(frame_width))

# Decide X,Y location of overlay image inside video frame. 
# following should be valid:
#   * image dimensions must be smaller than frame dimensions
#   * x+img_width <= frame_width
#   * y+img_height <= frame_height
# otherwise you can resize image as part of your code if required

x = 50
y = 50

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    # add image to frame
    frame[ y:y+img_height , x:x+img_width ] = img

    # Display the resulting frame
    cv2.imshow('frame',frame)

    # Exit if ESC key is pressed
    if cv2.waitKey(20) & 0xFF == 27:
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

如果我的假设是错误的,请提供更多细节。

【讨论】:

  • 我稍微修改了你的代码,但没有用,如果我在这里发送我的 github repository 链接,你会看吗?
  • @Ö.ALPERENGÜL 是的,请发送给我看看你得到了什么错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多