用于实时应用的 OpenCV fastNlMeansDenoising 的替代方案?

Alternative to OpenCV fastNlMeansDenoising for real time application?

我目前正在使用以下功能从两张大小为 (240x720) 的图像中去除噪点。我目前正在我的计算机上计算它,但想实时实现它。但是在我的计算机上,该功能会导致程序严重延迟。除了从可以实时工作的图像中去除噪声之外,还有其他方法吗?也许是高斯模糊?

  fastNlMeansDenoising(ipmOfLeftLaneRobust, ipmOfLeftLaneRobust,10,7,21);

要考虑的一个选项可能是使用 fastNIMeansDenoising 的 CUDA 版本,因为它提供了显着的加速,假设你有一个像样的 GPU(通常大多数 OpenCV 功能都是如此)。但除此之外,这取决于您要处理的噪声类型,但如果是椒盐噪声,则使用中值模糊函数通常会提供良好的结果。高斯模糊是另一个不错的选择,但如果你的噪音更普遍。

给定一个函数

fastNlMeansDenoising(InputArray src, OutputArray dst, float h=3, 
    int templateWindowSize=7, int searchWindowSize=21 );

templateWindowSize接近1时,滤波器变为盒式双边滤波器。

h 项接近无穷大时,滤镜变为框模糊滤镜。

对于两者中的任何一个,实施都是详尽无遗的。

一个直接的替代方案是首先尝试两个优化的特殊情况:cv::boxFiltercv::bilateralBlur