【发布时间】:2021-10-26 09:57:27
【问题描述】:
我是 python 新手。 我想知道你是否可以给我一个想法,让我知道如何在 10000 个图像的矩阵中平均每个连续的两个图像数组。我想降低我电影的节奏。 我找到了以下代码,但我想平均一个图像矩阵而不是 png 或 jpeg 格式。
import os, numpy, PIL
from PIL import Image
# Access all PNG files in directory
allfiles=os.listdir(os.getcwd())
imlist=[filename for filename in allfiles if filename[-4:] in[".tif",".TIF"]]
# Assuming all images are the same size, get dimensions of first image
w,h = Image.open(imlist[0]).size
N = len(imlist)
# Create a numpy array of floats to store the average (assume RGB images)
arr = numpy.zeros((h,w,3),numpy.float)
# Build up average pixel intensities, casting each image as an array of floats
for im in imlist:
imarr = numpy.array(Image.open(im),dtype=numpy.float)
arr = arr+imarr/N
# Round values in array and cast as 16-bit integer
arr = numpy.array(numpy.round(arr),dtype=numpy.uint16)
# Generate, save and preview final image
out = Image.fromarray(arr,mode="RGB")
out.save("Average.tif")
提前谢谢你,
【问题讨论】:
-
你说它是“电影”,所以是视频文件。你应该为此使用ffmpeg
-
@ChristophRackwitz 我的意思是连续帧,我有一个矩阵 [:,:,:] 或双格式。
标签: python arrays opencv python-imaging-library downsampling