Python 3.x 在1个视频上输出2个功能

Python 3.x 在1个视频上输出2个功能,python-3.x,opencv,Python 3.x,Opencv,我是Python的初学者,想问一下是否可以在一个视频上绘制不同功能的图像?下面是我的练习代码 import numpy as np import cv2 from multiprocessing import Process cap = cv2.VideoCapture('C:/Users/littl/Desktop/Presentation/Crop_DownResolution.mp4') def line_drawing(): while cap.isOpened(): re

我是Python的初学者,想问一下是否可以在一个视频上绘制不同功能的图像?下面是我的练习代码

import numpy as np
import cv2
from multiprocessing import Process


cap = cv2.VideoCapture('C:/Users/littl/Desktop/Presentation/Crop_DownResolution.mp4')

def line_drawing():
while cap.isOpened():
    ret, img = cap.read()
    if ret is True:
        cv2.line  (img,(50,180),(380,180),(0,255,0),5)
        cv2.imshow('img',img)
        k = cv2.waitKey(1) & 0xff
        if k == 27:
            break
    else:
        break

    cap.release()
    cv2.destroyAllWindows()

def rectangle_drawing():
while cap.isOpened():
    ret, img = cap.read()
    if ret is True:
        cv2.rectangle(img,(180,0),(380,128),(0,255,0),3)
        cv2.imshow('img',img)
        k = cv2.waitKey(1) & 0xff
        if k == 27:
            break
    else:
        break

    cap.release()
    cv2.destroyAllWindows()

if __name__=='__main__':
    p1 = Process(target = rectangle_drawing)
    p1.start()
    p2 = Process(target = line_drawing)
    p2.start()

当我运行代码时,它会给我两个选项卡运行相同的视频,一个是画线的,另一个是画矩形的。如何使矩形和线条都出现在视频中,并将函数分开,而不是将两者放在同一个函数中?

我无法用Python代码回答您的问题,但是

您拥有的是两个不同的线程,它们都独立地从视频提要捕获数据,并在单独的数据块上绘制元素

您需要做的是让一个进程负责从视频提要捕获数据,然后为其他两个线程提供数据。您可能需要查看互斥体,以便两个线程不会相互冲突

资源

SO和互联网上有很多问题可以帮助您实现这一目标:


我无法用Python代码回答您,但是

您拥有的是两个不同的线程,它们都独立地从视频提要捕获数据,并在单独的数据块上绘制元素

您需要做的是让一个进程负责从视频提要捕获数据,然后为其他两个线程提供数据。您可能需要查看互斥体,以便两个线程不会相互冲突

资源

SO和互联网上有很多问题可以帮助您实现这一目标: