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