java - 最快的高斯模糊实现

标签 java image-processing filtering gaussian

如何实现最快的 Gaussian blur算法?

我打算用Java实现它,所以GPU排除解决方案。我的申请,planetGenesis , 是跨平台的,所以我不想要 JNI .

最佳答案

您应该使用高斯核是可分离的这一事实,即。 e.您可以将 2D 卷积表示为两个 1D 卷积的组合。

如果滤波器很大,使用空间域中的卷积等价于频域(傅立叶)域中的乘法这一事实也可能有意义。这意味着您可以对图像和滤波器进行傅里叶变换,将(复数)结果相乘,然后进行傅里叶逆变换。 FFT(快速傅里叶变换)的复杂度为 O(n log n),而卷积的复杂度为 O(n^2)。此外,如果您需要使用相同的滤镜对多张图像进行模糊处理,您只需对滤镜进行一次 FFT。

如果您决定使用 FFT,FFTW library是个不错的选择。

关于java - 最快的高斯模糊实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/98359/

相关文章:

java - 以下做什么

algorithm - 在平均之前线性归一化图像堆栈(数据?)?

javascript - 希望当字符串部分或完全匹配对象中的值时此函数返回

java - 从java中的节点获取xml字符串时出现空字符串

Java MySql 列未找到

c# - 图片中的颜色

delphi - 如何计算位图的闭合裁剪矩形?

python - 使用 OpenCV 的 Python 中的最小过滤器

javascript - 保持选中本地存储的复选框,同时在加载时过滤列表

java - 自动提交设置为 false 时的完整性约束