如何使用python 2.7.13将nXn彩色图像分成不重叠,大小相等的块?

时间:2017-06-22 09:03:21

标签: python opencv numpy

我已经安装了诸如numPy,sciPy之类的库。这是必需的openCV吗?使用Scikit-image会解决目的吗? 将图像划分为块(例如,将256x256像素图像划分为4x4像素块然后转换为矩阵)可以使用Matlab完成,但我想确保是否可以使用python完成。

1 个答案:

答案 0 :(得分:2)

Python(和numpy)切片和索引使这很简单。你不需要OpenCV或scikit-image(当然你需要读取图像的东西)。

>>> import numpy as np
>>> image = np.random.rand(256,256) # random grayscale float image
>>> blocks = np.array([image[i:i+4, j:j+4] for j in range(0,256,4) for i in range(0,256,4)])
>>> blocks.shape
(4096, 4, 4)

>>> image = np.random.rand(256,256,3) # random 3-ch float image
>>> blocks = np.array([image[i:i+4, j:j+4] for j in range(0,256,4) for i in range(0,256,4)])
>>> blocks.shape
(4096, 4, 4, 3)