Dee*_*Bee 1 python arrays numpy
假设我有一个由 (M, N, 3) numpy 数组表示的 RGB(或 HSV)图像,其中每个维度([x, y, 0]或[x, y, 1])表示特定像素处的颜色通道值。我想将数组重塑为 (M*N, 3),其中颜色通道组合 ( [R1, G1, B1], [R2, G2, B2]...) 为平面列表(在这种情况下这是正确的术语吗?)。我知道必须使用 reshape 函数,但我很难理解如何使用该函数。任何帮助表示赞赏。
编辑:这是我希望发生的事情的一个例子。
输入:代表图像的 (640 x 640 x 3) 数组,其中[40, 40, 1]是特定像素的 G 值。我想获取所有 3 个颜色通道并将它们组合到以下输出中。
输出:([R, G, B], [R, G, B], [R, G, B]...)
如果img是您的数组,则可以使用img.reshape(-1, 3).
例如,
In [50]: img.shape
Out[50]: (5, 2, 3)
In [51]: img
Out[51]:
array([[[2, 0, 4],
[1, 4, 3]],
[[2, 1, 4],
[3, 2, 2]],
[[2, 4, 1],
[4, 0, 2]],
[[1, 4, 2],
[3, 2, 2]],
[[3, 2, 1],
[2, 1, 0]]])
In [53]: x = img.reshape(-1, 3)
In [54]: x.shape
Out[54]: (10, 3)
In [55]: x
Out[55]:
array([[2, 0, 4],
[1, 4, 3],
[2, 1, 4],
[3, 2, 2],
[2, 4, 1],
[4, 0, 2],
[1, 4, 2],
[3, 2, 2],
[3, 2, 1],
[2, 1, 0]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3053 次 |
| 最近记录: |