Py学习  »  Python

Python:在3D数组中找到局部最大值(图像堆栈)

T. Kau • 4 年前 • 557 次点击  

算法生成的热图如下所示:

enter image description here

到目前为止我用 skimage.feature.peak_local_max

现在我想运行模板匹配不同的旋转模板,这将给我几个热图。像这样:

enter image description here

我已经把这些图像叠加在一起创建了一个3D数组,现在我想在本地 . 例如,邻域定义为15像素宽和高(但包括所有旋转)。

三维阵列是有形状的 (高度、宽度、旋转)

编辑: 我自己找到了一个解决办法(从 肌氨酸 )如果有人有同样的问题,我会把这个贴在这里:

我看到了 scipy.ndimage.filters.maximum_filter (可以找到 here footprint = np.ones((size_neighborhood, size_neighborhood, nr_rotations)) .

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53058
 
557 次点击  
文章 [ 2 ]  |  最新文章 4 年前
markuscosinus
Reply   •   1 楼
markuscosinus    5 年前

实现这一目标的一种方法是:

  1. 查找每个旋转使用的局部极大值 skimage.feature.peak_local_max
  2. 每一个最大值 m (x,y,z) (x-n,y-n,y-n) (x+n,y+n,y+n) ,其中 n 是街区的大小。如果附近有一些,只保留最大的。

我知道,这在效率上不是很令人满意,但如果你没有太多或太大的照片,它应该完成工作:)

T. Kau
Reply   •   2 楼
T. Kau    5 年前

我自己找到了一个解决办法(从 肌氨酸

我看到了 scipy.ndimage.filters.maximum_filter (可以找到 here footprint = np.ones((size_neighborhood, size_neighborhood, nr_rotations)) .