我有两个录像带。一个是10fps,另一个是相同的视频和10fps,但它是从相同的视频5fps版本插值。我想通过比较每个帧的RGB值来查看帧插值的精确度。我可以从两个视频中提取每一帧。但是,我只能得到1帧的RGB值。我使用以下代码:
from PIL import Image
im = Image.open('frame1.jpg')
pix = im.load()
for x in range(0,640):
for y in range(0,480):
print pix[x,y]
这段代码只能在1帧中找到RGB值,而我有数百帧。我的原始视频的帧名为frame1.jpg frame2.jpg ...帧100.jpg等和其他视频帧另存为frames1.jpg frames2.jpg ...frames100.jpg等,有没有办法自动化呢
发布于 2018-07-30 21:43:08
您可以使用glob
(Python自带)加载所有图像并同时存储它们,或者一次处理一个图像。
import glob
from PIL import Image
for frames in glob.glob({path}+"*.jpg"):
im = Image.open(frames)
pix=im.load()
for x in range(0,640):
for y in range(0,480):
print pix[x,y]
这将执行您所做的操作,但它将循环遍历路径中的所有JPG格式的文件。如果你想要更具体的东西,你可以添加请求,我会在我的答案中添加。但这将按顺序加载所有图像,允许您随后处理它们。
发布于 2018-07-30 21:43:39
把所有的东西都放在一个循环中。
for i in range(1, 101):
file = 'frame%d.jpg'%i
im = Image.open(file)
# ...
https://stackoverflow.com/questions/51595179
复制相似问题