我目前正在将一个执行图像分析的Matlab程序转换成Python。该程序的一个特定部分利用bwlabeln以顺序递增的标签标记3D矩阵中的各种组件。我在skimage.measure包中找到了一个非常类似的函数,名为label,它基本上做着完全相同的事情。然而,我发现当在两个程序之间使用相同大小和数据类型的输入矩阵时,Matlab上的bwlabeln运行速度明显快于Python中的label(几乎快4倍)
我想知道这是什么原因,是否有任何方法可以加速Python代码或提高性能
在这两个函数中,我都使用了26个连通的邻域,这两个邻域在默认情况下似乎都是这样的,但为了确保这一点,我进一步将其指定为参数
scikit图像算法能够标记整数数组,即大于0和1的值。因此,它与仅限于0和1(假和真)的Matlab算法不同。您可以使用来自
scipy.ndimage
的label
算法,它在下面定义的二值图像上确实快了4倍,因此您应该能够使用此函数匹配Matlab的速度相关问题 更多 >
编程相关推荐