c++ - 在image-OpenCV和C++中添加高斯噪声然后去噪?

标签 c++ image opencv gaussian

我正在尝试向图像添加噪声,然后进行降噪以查看我的对象检测算法的差异。所以我用 C++ 开发了 OpenCV 代码来检测图像中的一些物体。我想测试代码的健壮性,所以尝试添加一些噪音。以那种方式想检查在向图像添加噪声时对象检测率如何变化。所以,首先像这样添加一些随机高斯噪声

cv::Mat noise(src.size(),src.type());
 float m = (10,12,34);
 float sigma = (1,5,50);
 cv::randn(noise, m, sigma); //mean and variance
 src += noise;

我得到了这些图片:

原文:enter image description here 吵闹的enter image description here

那么有没有更好的噪声模型呢?然后如何对其进行降噪。有没有去噪算法?

最佳答案

OpenCV 带有 Photo 包,您可以在其中找到非局部均值去噪算法的实现。文档可以在这里找到: http://docs.opencv.org/3.0-beta/modules/photo/doc/denoising.html

据我所知,它是唯一适用于 OpenCV 2.4 和 OpenCV 3.x 的去噪算法

除了 randn,我不知道 OpenCV 中还有其他噪声模型。但是,添加执行此操作的自定义函数应该不是问题。 python 中有一些不错的示例(将其重写为 C++ 应该没有问题,因为 OpenCV API 大致相同)How to add noise (Gaussian/salt and pepper etc) to image in Python with OpenCV

还有一件事我不明白:如果你可以产生噪声,如果你已经有了没有噪声的原始图像,为什么还要使用某种算法对图像进行降噪?

关于c++ - 在image-OpenCV和C++中添加高斯噪声然后去噪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43931749/

相关文章:

c++ - 模型/ View 委托(delegate)组件公共(public)部分

html - div 的响应式背景图像的 CSS 问题

c++ - 在 C++ 中通过套接字发送图像时出现 "The image cannot be displayed error"

ios - 通过提取框架在avcapture预览层上绘制形状

c++ - 不同子类的构造函数中的个性化名称

c++ - 为什么 constexpr 静态成员(类型类)需要定义?

c++ - 从哪里获得用于面部表情识别的 SVM 训练数据?

android - 使用 OpenCV 进行 gabor 边缘检测

c++ - 制作点光源的最佳方法

python - 给定一定的比例,我如何调整图像的大小?