gpt4 book ai didi

python - 如何在 Python 中生成许多 32x32 灰度图像的平均图像?

转载 作者:行者123 更新时间:2023-12-01 07:17:05 31 4
gpt4 key购买 nike

我的数组大小为 50000x32x32。 arr[i] 存储第 i 个灰度图像。

我想计算这些图像的平均图像。我尝试了以下代码(我从堆栈溢出本身获得了此代码)。这段代码实际上是针对 RGB 图像的。

我知道,我的这些改动有很多错误,抱歉。

import os, numpy, PIL
from PIL import Image

# Access all PNG files in directory
allfiles=os.listdir(os.getcwd())
imlist=arr
N=len(imlist)
# Assuming all images are the same size, get dimensions of first image
w,h=Image.fromarray(imlist[0]).size


# Create a numpy array of floats to store the average (assume RGB images)
brr=numpy.zeros((h,w),numpy.float)

# Build up average pixel intensities, casting each image as an array of floats
for im in imlist:
imarr=numpy.array(Image.fromarray(im),dtype=numpy.float)
brr=brr+imarr/N

# Round values in array and cast as 8-bit integer
brr=numpy.array(numpy.round(arr),dtype=numpy.uint8)

# Generate, save and preview final image
out=Image.fromarray(brr,mode="L")
out.save("Average.png")
out.show()

最佳答案

获得 5000 × 32 × 32 数组后,您可以使用 np.mean()axis=0 (第一个轴,其中包含图像集合)。让我们制作一些随机数据:

import numpy as np
images = np.random.random((5000, 32, 32))

现在我们可以计算平均图像:

mean_image = images.mean(axis=0)

我们可以通过以下方式查看它:

import matplotlib.pyplot as plt
plt.imshow(mean_image)

看起来像:

A matplotlib plot of a 32x32 array

关于python - 如何在 Python 中生成许多 32x32 灰度图像的平均图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57903125/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com