为什么SciKit的分水岭功能太慢?

时间:2018-12-12 16:00:47

标签: python time native scikit-image watershed

我仅对OpenCV,Skimage(SciPy)和BoofCV中的分水岭函数的执行时间进行了比较。尽管OpenCV似乎比其他两个要快得多(平均时间:10个样本为0.0031秒),但是Skimage的执行时间却相差很大(从0.03到0.554秒)。我想知道为什么会这样吗?它不是应该是本机python函数吗?

1 个答案:

答案 0 :(得分:1)

没有更多细节很难知道为什么您的特定应用程序运行缓慢。通常,虽然scikit-image代码的优化程度不如OpenCV,但涵盖了更多用例。例如,它可以将浮点值用作输入,而不仅仅是uint8,并且可以处理3D甚至更高尺寸的图像。

关于性能:OpenCV使用高度优化的C / C ++进行编码,而scikit-image使用Cython(一种将Python代码编译为C的混合语言)实现C性能的编码。但是,Cython中没有几种优化方法,如上所述,实际实现的方法存在差异,从而导致性能差异。