Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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 2.7.13将nXn彩色图像划分为不重叠、大小相等的块?_Python_Opencv_Numpy - Fatal编程技术网

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

如何使用python 2.7.13将nXn彩色图像划分为不重叠、大小相等的块?,python,opencv,numpy,Python,Opencv,Numpy,我已经安装了numPy、sciPy等库。这需要openCV吗?使用Scikit图像可以解决这个问题吗? 将图像划分为块,例如,将256x256像素的图像划分为4x4像素的块,然后使用Matlab将其转换为矩阵,但我想确保是否可以使用python完成。python和numpy的切片和索引使这一操作变得简单。您不需要OpenCV或scikit图像,但您确实需要一些东西来读取图像 >>> import numpy as np >>> image = np.rando

我已经安装了numPy、sciPy等库。这需要openCV吗?使用Scikit图像可以解决这个问题吗? 将图像划分为块,例如,将256x256像素的图像划分为4x4像素的块,然后使用Matlab将其转换为矩阵,但我想确保是否可以使用python完成。python和numpy的切片和索引使这一操作变得简单。您不需要OpenCV或scikit图像,但您确实需要一些东西来读取图像

>>> 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)

谢谢你的帮助,但是代码不起作用。你能更具体一点吗?您应该确保首先将numpy作为np导入。我会把它编辑到帖子里。让我知道你有什么问题。如果我想把任何nXn彩色图像分成m个块怎么办?你可以用n/m来计算块大小。当然,如果你的图像没有完全划分成块大小,你必须弄清楚你想做什么……你可以将它们附加到最后的块中,使它们变大,或者在最后有更小的块,或者忽略它们,或者做任何你想做的事情。显然,这取决于你想用它们做什么。为我工作,谢谢你!