numpy with python:将3d数组转换为2d

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy with python:将3d数组转换为2d相关的知识,希望对你有一定的参考价值。

假设我有一个彩色图像,当然这将由python中的三维数组表示,比如说形状(n x m x 3)并将其称为img。

我想要一个新的2-d数组,称它为“narray”以具有形状(3,nxm),使得该数组的每一行分别包含R,G和B通道的“扁平”版本。此外,它应该具有我可以通过类似的东西轻松地重建任何原始频道的属性

narray[0,].reshape(img.shape[0:2])    #so this should reconstruct back the R channel.

问题是如何从“img”构建“叙事”?简单的img.reshape(3,-1)不起作用,因为元素的顺序对我来说是不可取的。

谢谢

答案

如果您安装了scikit模块,那么您可以使用rgb2grey(或rgb2gray)制作从彩色到灰色的照片(从3D到2D)

来自skimage import io,颜色

lina_color = io.imread(path + img)lina_gray = color.rgb2gray(lina_color)

在[33]中:lina_color.shape Out [33] :( 1920,1280,3)

在[34]中:lina_gray.shape Out [34] :( 1920,1280)

以上是关于numpy with python:将3d数组转换为2d的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何从 3D numpy/torch 数组中提取连接的组件(边界框)?

将 2d 矩阵转换为 3d 单热矩阵 numpy

从 JSON 文件到 Numpy 数组

将浮点 numpy 数组转换为字符串数组 Python

将 NumPy 数组转换为 Python 列表结构?

Python NumPy - 3D 数组的角度切片