gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 17:08:24 26 4
gpt4 key购买 nike

我是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和Internet上有很多问题可以帮助您实现这一目标:

  • opencv python Multi Threading Video Capture
  • https://www.pyimagesearch.com/2015/12/21/increasing-webcam-fps-with-python-and-opencv/
  • http://algomuse.com/c-c/developing-a-multithreaded-real-time-video-processing-application-in-opencv
  • http://forum.piborg.org/node/2363
  • 关于python-3.x - 在1个视频上输出2个功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49789513/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com