Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 遍历图像并将每个图像存储为列表项_Python_Arrays_Numpy_Opencv_Image Processing - Fatal编程技术网

Python 遍历图像并将每个图像存储为列表项

Python 遍历图像并将每个图像存储为列表项,python,arrays,numpy,opencv,image-processing,Python,Arrays,Numpy,Opencv,Image Processing,嗨,我在一个文件夹中有多个图像,我正在对它们进行迭代,并将它们转换为20x20块。对于图像中的每个块,我计算平均值,这是为每个图像完成的。我希望结果以列表的形式出现,这意味着如果我有6个图像,那么应该有6个列表项,对于每个列表项,应该有一个20x20数组,其中包含所有块的平均值 img = [cv2.imread(file,0) for file in glob.glob("resized/*.jpg")] X=[] for im in img: arr = np.asarray(im)

嗨,我在一个文件夹中有多个图像,我正在对它们进行迭代,并将它们转换为20x20块。对于图像中的每个块,我计算平均值,这是为每个图像完成的。我希望结果以列表的形式出现,这意味着如果我有6个图像,那么应该有6个列表项,对于每个列表项,应该有一个20x20数组,其中包含所有块的平均值

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,0.1,....,],[0,0.1,....,],[0,0.1,....,],[0,0.1,....,],[0,0.1,....,],[0,0.1,....,]]. Each item should be 400 values.
但现在我得到的结果只有400个值

[[0.0,
  0.0,
  0.0,
  0.0,
  0.0,
 ....
  3.99,
  2.16,
  12.23,
  0.0,
  0.0,
  5.07,
  7.65,
 ....
  0.0,
  0.0,
  0.0]]

列表理解返回单个值的列表。要创建二维列表,请尝试:

mat = [[arr[i][j].mean() for i in range(20)] for j in range(20)]

我的当前代码正在按照我的要求进行所需的输出。我以前没有注意到,这是我的错。代码生成6个列表项,每个列表项的长度等于400,即一个图像中的块数。因此,我们有一个长度为6的2d列表,其中每个列表项都是每个块的平均值列表。

我希望结果的形式为
[[a11,a12,…,a120,a21,…,a220,…,a400400],[b11,b12,…,b120,b21,…,b220,…,b400400],[c11,c12,…,c120,c21,…,c220,…,c400400]
其中a,b,c是文件夹“调整大小”中的图像,a11,b11,c11分别是图像a、b、c中的块