【发布时间】:2012-04-09 18:11:09
【问题描述】:
我在大量图像上使用的 2D 中值滤波器(3x3 窗口)存在瓶颈,我想尝试优化它。我测试了scipy.ndimage median_filter,以及PIL、scipy.signal 和scikits-image。但是,在 SO 中浏览时,我了解到 C 中有一个快速 O(n) 中值过滤器(Constant Time 中的中值过滤参见Rolling median algorithm in C),我想知道是否可以使用 scipy.weave 在 Python 中实现它。排队 ?
有什么替代路线的建议吗?
【问题讨论】:
-
我有一个用于 Perreault + Hebert 的 cython 包装器,在某个地方进行恒定时间的中值过滤——但这对于 3x3 来说太过分了,最好做一个排序网络,25 个比较中有 9 个输入。输入是 0..255 还是什么?
-
您只想处理您的图像集吗? OpenCV 是替代路线吗? medianBlure 也许?您还拥有 CUDA 和 OpenCl 实现。
-
大部分代码框架已经在python中,小部分在matlab中,最好用python实现这部分代码。
-
@natan OpenCV 的大部分功能都有一个不错的 Python 接口。例如。来自文档:Python:cv2.medianBlur(src, ksize[, dst]) → dst
-
@eickenberg,我猜你是对的,它的意思是线性的,所以 O(n) 是正确的写法吗?
标签: python image-processing scipy filtering median