将序列帧转换为视频

Converting sequenced frames to video

我正在尝试将图像转换为视频,但没有得到正确的序列,所以我正在使用 glob 来组织它。在此之后我遇到了错误,然后我将代码缩减为:

import re
import glob
import cv2

numbers = re.compile(r'(\d+)')

def numericalSort(value):
    parts = numbers.split(value)
    parts[1::2] = map(int, parts[1::2])
    return parts

for infile in sorted(glob.glob('*.jpg'), key=numericalSort):
    img1 = cv2.imread(infile)

    cv2.imshow('image', img1)

    exit()

并且出于某种原因它没有显示 'img1'。

我想我不能为变量调用 "cv2.imread",因为在我之前的代码中,当我调用 opencv 函数与 'img1' 一起工作时,它说的是 "its not a valid array" .

所以,我的问题是,为什么没有 imshow 运行,我如何使用文件中的图像“"behind"”并使用该文件。

您需要致电 waitKey() 才能使 imshow() 正常工作。

例如:

import re
import glob
import cv2

numbers = re.compile(r'(\d+)')

def numericalSort(value):
    parts = numbers.split(value)
    parts[1::2] = map(int, parts[1::2])
    return parts

for infile in sorted(glob.glob('*.jpg'), key=numericalSort):
    img1 = cv2.imread(infile)

    cv2.imshow('image', img1)
    k = cv2.waitKey(33)
    if k==27:    # Escape to quit
        break