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

时间:2018-07-30 13:33:24

标签: python rgb pixel

我有两个视频。一种是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等,其他视频帧被另存为frame1.jpg frame2.jpg ... frame100.jpg等。是否有一种自动化的方法它

2 个答案:

答案 0 :(得分:0)

您可以使用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格式的路径中的所有文件。如果您需要更具体的信息,可以添加请求,我将添加到我的答案中。但这将顺序加载所有图像,使您可以随后对其进行处理。

答案 1 :(得分:0)

将所有内容循环放置。

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