将序列帧转换为视频
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
我正在尝试将图像转换为视频,但没有得到正确的序列,所以我正在使用 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