从多个帧中查找每个像素的 RGB 值

Find every pixels RGB value from multiple frames

我有两个视频。一个是 10 fps,另一个是相同的视频和 10 fps,但它是从相同的视频 5 fps 版本中插入的。我想通过比较每帧的 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 ... 帧100.jpg 等。有没有办法自动化它

您可以使用 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 格式的文件。如果你想要更具体的东西,你可以添加请求,我会添加到我的答案中。但这将顺序加载所有图像,允许您随后处理它们。

把所有这些东西放在一个循环中。

for i in range(1, 101):
    file = 'frame%d.jpg'%i
    im = Image.open(file)
    # ...