假设我有一个彩色图像,这自然将由python中的3维数组表示,例如形状(nxmx 3),并将其称为img。
我想要一个新的二维html" target="_blank">数组,将其称为“
narray”,其形状为(3,nxm),以便该数组的每一行分别包含R,G和B通道的“扁平化”版本。而且,它应该具有这样的属性:我可以通过类似以下方法轻松地重建任何原始通道
narray[0,].reshape(img.shape[0:2]) #so this should reconstruct back the R channel.
问题是如何从“ img”构造“ narray”?简单的img.reshape(3,-1)不起作用,因为元素的顺序对我而言并不理想。
谢谢
您需要使用np.transpose
重新排列尺寸。现在,n x m x 3
将被转换为3 x (n*m)
,因此将最后一个轴发送到前面,并按剩余轴的顺序右移(0,1)
。最后,重塑以具有3
行。因此,实施将是-
img.transpose(2,0,1).reshape(3,-1)
样品运行-
In [16]: img
Out[16]:
array([[[155, 33, 129],
[161, 218, 6]],
[[215, 142, 235],
[143, 249, 164]],
[[221, 71, 229],
[ 56, 91, 120]],
[[236, 4, 177],
[171, 105, 40]]])
In [17]: img.transpose(2,0,1).reshape(3,-1)
Out[17]:
array([[155, 161, 215, 143, 221, 56, 236, 171],
[ 33, 218, 142, 249, 71, 91, 4, 105],
[129, 6, 235, 164, 229, 120, 177, 40]])
问题内容: 在Java中,如何将ArrayList转换为二维数组Object [] []? 从评论中:我将用更多细节向您描述问题:XML文件包含联系人列表(例如姓名,地址…)。我可以获得此信息的唯一方法是通过ArrayList,该列表将提供给我。由于需要将该数组列表的内容以有序方式存储在Java Swing表中,因此我正在考虑将其转换为对象的二维数组 问题答案: 知道每个联系人具有的属性数量,我设
问题内容: 我有一个包含几个整数的数组。我已经向数组添加了一些值,但是现在我需要通过jQuery的方法将此数组发送到页面。如何将其转换为JSON对象进行发送? 问题答案: 向后兼容的脚本:https : //github.com/douglascrockford/JSON- js/blob/master/json2.js 并致电: 注意: JSON对象现在是大多数现代Web浏览器(IE 8及更高版
问题内容: 如何将数组转换为CSV文件? 这是我的数组: 问题答案: 我正在使用以下功能;它是对fputscsv注释中的man条目之一的改编。而且您可能想要展平该数组;不知道如果您传递一个多维的行会发生什么。
问题内容: 我正在尝试将Java中的Javascript数组转换为Java数组。我正在使用javax.script包。我在这里测试了此示例,但是无法识别类型“ NativeArray” 我如何才能识别NativeArray类型? 问题答案: 按照这个答案,看来最好的选择是编写一个JavaScript转换器函数,该函数使用Rhino的Java绑定功能将本机JavaScript数组转换为Java数组。
问题内容: 我有一个想要转换为纯JavaScript数组的json数组: 这是我的json数组: 如何将其转换为普通的javascript数组,如下所示: 问题答案: 已经是JS对象(不是JSON)。但是,您可以在这里: 编辑:将 元素插入数组中的正确位置。谢谢@RoToRa 也许一开始不创建此类对象会更容易。它是如何创建的?
问题内容: 我正在尝试将代表黑白图像的2D Numpy数组转换为3通道OpenCV数组(即RGB图像)。 基于代码示例和文档,我正尝试通过Python执行此操作,例如: 但是,对CvtColor()的调用将引发以下cpp级异常: 我究竟做错了什么? 问题答案: 您的代码可以固定如下: 简短说明: 数据类型不受OpenCV的支持(它支持,,,,,,) 无法处理numpy数组,因此必须将两个参数都转换