python - Numpy 3d 矩阵到 2d 矩阵
问题描述
您好,我有这个当前矩阵:
[[[223 215 213]
[222 213 214]
[222 213 214]
...
[229 223 223]
[229 223 223]
[229 223 223]]
[[220 211 212]
[220 211 212]
[221 212 213]
...
[229 220 221]
[229 220 221]
[227 221 221]]
[[219 210 211]
[219 210 213]
[220 209 213]
...
[229 220 221]
[229 220 221]
[229 220 221]]
...
[[ 31 38 93]
[ 48 54 112]
[ 95 105 167]
...
[142 147 202]
[148 151 202]
[135 141 189]]
[[ 33 42 101]
[ 64 74 133]
[ 97 108 170]
...
[140 146 198]
[142 148 200]
[131 137 189]]
[[ 44 56 116]
[ 91 101 162]
[ 98 109 171]
...
[139 145 195]
[129 135 187]
[125 130 186]]]
我需要把它变成三个单独的二维矩阵,代表图像的 R、G、B 值
这是我尝试过的代码,这是我对 R 数组的结果:
R = img1.transpose(2,0,1).reshape(300, -1)
结果:
[[223 222 222 ... 229 229 229]
[220 219 217 ... 230 230 229]
[221 222 222 ... 229 229 229]
...
[ 96 73 71 ... 196 190 190]
[103 94 106 ... 196 209 197]
[ 93 112 167 ... 195 187 186]]
它应该是什么:
[[223 222 222 ... 229 229 229]
[220 220 221 ... 229 229 227]
[219 219 220 ... 229 229 229]
...
[ 31 48 95 ... 142 148 135]
[ 33 64 97 ... 140 142 131]
[ 44 91 98 ... 139 129 125]]
任何有关如何达到这种格式的帮助将不胜感激!
解决方案
您可以使用切片沿特定轴进行提取。
我相信在你的特殊情况下,你应该这样做:
red = data[:, :, 0] #Take all values along the first dimension, all values along the second dimension and only the first value along the third dimension
green = data[:, :, 1]
blue = data[:, :, 2]
推荐阅读
- github - Github 引用被 NPM 报告为已过时
- typescript - 如何从另一个组件访问存储在角度服务变量中的值
- c++ - Direct X:如何显示加载到纹理中的图像?
- android - 在 app:processDebugManifest 期间 React Native 崩溃
- javascript - 如何让 VSCode 智能感知识别 Javascript 中的多态函数?
- vue.js - 使用 v-if 在标头中使用不同的路由链接会导致路由到错误的路径
- vb.net - 使用 OpenDoc6 打开绘图文档
- ruby-on-rails - 更改数据库中的输入
- javascript - 如何根据用户选择的 HTML 选项更改选择的背景颜色?
- python - 从输入字符串中检测最后一部分的函数