将多个图像转换为数组并求平均值

时间:2019-10-10 05:34:59

标签: python numpy opencv image-processing

嗨,我正在尝试将多个图像转换为块结构数组,然后我想找到每个块的平均值。我遇到了单个图像的解决方案,但是我不知道如何为多个图像实现它。可以在[here](Divide image to blocks)中看到提到的解决方案! 我想为多个图像实现相同的功能。有可能吗?

import numpy as np
from PIL import Image

image = Image.open("your_file.jpg", "r")
arr = np.asarray(image)
arr = np.split(arr, 20)
arr = np.array([np.split(x, 20, 1) for x in arr])
mat = [arr[i][j].mean() for i in range(40) for j in range(40)]

这不是我的代码。我从这个想法的来源引用了原始作者@Daniel。他的代码可用于单个图像。有没有办法一次将其用于多张图像?

我已经尝试过了,但是我不确定这样做是否正确。

img = [cv2.imread(file,0) for file in glob.glob("resized/*.jpg")]
X=[]
for im in img:
    arr = np.asarray(im)
    arr = np.split(arr, 20)
    arr = np.array([np.split(x, 20, 1) for x in arr])
    mat = [arr[i][j].mean() for i in range(20) for j in range(20)]
    X.append(mat)

0 个答案:

没有答案