从多个帧中查找每个像素的 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)
# ...
我有两个视频。一个是 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)
# ...