0

我正在使用 python 2.7

我有一个由创建的索引数组

ids=np.indices((20,20))

ids[0] 填充所有垂直坐标,ids 1填充所有水平坐标 ids 的形状为 (2,20,20)

我有一个形状为 (20,20) 的布尔蒙版

我需要一个与掩码中标记为 true 的 id 相对应的 id 列表。

我试图通过 mid=ids[:,mask].T 来做到这一点,它给了我一个这样的列表

[2,17] [4,6] [1,19] [18,4]

等等。它们保存在一个名为 mid 的数组中

然后,我需要所有这些坐标在中间找到另一个数组中的值。意思是我需要

另一个数组([2,17])

我还没有设法以一种花哨的索引方式使用 mid 列表,有人可以帮助我吗?

我有

anotherarray[mid[0],mid[1]]

它不起作用。我也有

anotherarray[tuple(mid)]

它不起作用

编辑(仅当您关心上下文时才阅读):我想添加上下文以说明为什么我认为我需要额外的索引。也许我没有,这就是我想弄清楚以提高效率。

这是一个注册问题,非常简单。我有两张图片。参考和浮动如下所示。参考左侧,并浮动到右侧。

参考图像 浮动图像

参考图像和浮动图像在不同的坐标空间中。正如您在图像中看到的那样,我已经标记了点。我发现彼此之间存在仿射变换。

由线划定的区域是我感兴趣的区域。我将浮动空间中该区域的坐标发送到参考空间。

在参考空间中,我找到了在区域内找到的像素,它们变成了mask数组,包含内部和外部像素的信息。

但我只关心里面的那些,所以我只想要参考空间中掩码内的那些像素的索引并使用它们保存它们mid=ids[:,mask].

一旦我有了这些点,我将它们转换回浮动空间,在这些新索引中我需要寻找强度。这些强度将在其相应索引的参考中写回。这就是为什么我认为我需要在参考空间和浮动空间中拥有这些点的索引,以及图像的强度。另一个图像是anotherarray我只想要转换后的蒙版像素的图像。

所以你去吧,如果你关心它,那就是解释。感谢您阅读和回答。

4

1 回答 1

1

一些提示:您可以mid使用np.argwhere(mask). 可能对您的目的更方便的是np.where您可以使用 likemi, mj = np.where(mask)和 then anotherarray[mi, mj]

于 2018-01-18T17:52:59.493 回答