OpenCV4.0进阶(5)图像非局部均值去噪

知识点:

图像去噪声:

图像去噪声在OCR、机器人视觉与机器视觉领域应用开发中是重要的图像预处理手段之一,对图像二值化与二值分析很有帮助,OpenCV中常见的图像去噪声的方法有:

- 均值模糊去噪声

- 高斯模糊去噪声

- 中值滤波去噪声

- 非局部均值去噪声

- 双边滤波去噪声

- 形态学去噪声

均值、高斯、中值去噪在前面几个章节都已经介绍过了,今天主要介绍非局部均值去噪声及其API函数。

非局部均值去噪声:

考虑图像中一个小的窗口(5 x 5),有很大可能图像中的其他区域也存在一个相似的窗口。有时这个相似窗口就在邻域周围。如果我们找到这些相似的窗口并取他们的平均值会怎样呢?对于特定的窗口这样做往往会取得意想不到的效果。

上图中的蓝色窗口看起来是相似的,绿色窗口看起来也是相似的。所以我们可以选取包含目标像素的一个小窗口,然后在图像中搜索相似的窗口,最后求取所有窗口的平均值,并用这个值取代目标像素的值。这种方法就是非局部平均值去噪。

非局部均值去噪去噪效果很好,但通常会耗费相当可观的时间。

相关API:

适用于彩色图像的:

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

- src:输入一张8-bit,3-channel的图像

- dst:输出图像要求与输入通信有相同的尺寸和大小

- h:亮度元件参数调节滤波器强度。较大的h值可以很好地去除噪声,但也可能去除图像细节;较小的h值可以保留细节,但也可能保留一些噪声;

- hColor:hColor 与 h 相同,但适用于颜色组件。对于大多数图像,值等于10就足以消除彩色噪声,而不会扭曲颜色;

- templateWindowSize:用于计算权重的模板补丁的像素大小。应该是奇数。推荐值7像素;

- searchWindowSize:用于计算给定像素加权平均值的窗口的像素大小。应该是奇数。线性影响性能:更大的搜索窗口大小-更大的去噪时间。推荐值21像素。

 

代码演示:

#ifndef DAY25
#define DAY25

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

void gaussian_noise(Mat &image);

void day25() {

	Mat src = imread("G:/opencvTest/girl2.jpg");
	if (src.empty()) {
		printf("could not load image...\n");
		return;
	}
	namedWindow("input", WINDOW_AUTOSIZE);
	imshow("input", src);
	gaussian_noise(src);

	Mat result1, result2, result3, result4;
	blur(src, result1, Size(5, 5));
	imshow("均值滤波", result1);

	GaussianBlur(src, result2, Size(5, 5), 0);
	imshow("高斯滤波", result2);

	medianBlur(src, result3, 3);
	imshow("中值滤波", result3);

	fastNlMeansDenoisingColored(src, result4, 15, 15, 10, 30);
	imshow("非局部均值滤波", result4);

	waitKey();
}

void gaussian_noise(Mat &image) {
	Mat noise = Mat::zeros(image.size(), image.type());

	// 通过randn产生高斯随机噪声来填充矩阵,15是高斯均值,30是高斯方差
	randn(noise, 15, 30);

	Mat dst;
	add(image, noise, dst);
	imshow("gaussian noise", dst);
	dst.copyTo(image);
}


#endif // !DAY25

 

结果展示:

原图来源于网络,侵权速删~

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Apple_Coco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值