如何将视频保存为列表中的帧并同时处理帧列表?

2024-09-29 17:16:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从相机中读取输入并在列表中附加帧,显示列表中的帧。代码在添加到列表中后,读取并显示帧需要花费大量时间

def test(source_file):
    ImagesSequence=[]
    i=0
    capture = VideoCapture(source_file)
    while(1):
        ret, frame = capture.read()
        while(True):
            imshow('Input', frame)

            ImagesSequence.append(frame)
            imshow('Output',ImagesSequence[i].astype(np.uint8))
            i=i+1
        if cv2.waitKey(60) & 0xFF == ord('q'):
            break
    return ImagesSequence

test(0)

Tags: 代码testsource列表def时间framefile
2条回答

正如Christoph指出的,程序中运行着一个实际的无限循环,删除它将修复程序

def test(source_file):
    ImagesSequence=[]
    i=0
    capture = cv2.VideoCapture(source_file)

    while True:
        ret, frame = capture.read()
        cv2.imshow('Input', frame)
        ImagesSequence.append(frame)
        cv2.imshow('Output',ImagesSequence[i].astype(np.uint8))

        i=i+1
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    return ImagesSequence

test(0)
from cv2 import *
import numpy as np
ImagesSequence=[]
i=0
cap = cv2.VideoCapture(0)
while True:
    # Capture frame-by-frame
    ret, frame = cap.read()
    # Display the resulting frame
    cv2.imshow('frame', frame)
    ImagesSequence.append(cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY))
    cv2.imshow('output', ImagesSequence[i].astype(np.uint8))
    i=i+1
    if cv2.waitKey(60) == ord('q'):
        break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

相关问题 更多 >

    热门问题