【OpenCV 4】图像去噪--非局部均值去噪

一、编程环境:

OpenCV  4.1.0
IDE Visual Studio 2017 Enterprise (15.9.13)
操作系统 Windows 10 x64 中文专业版 (1903)

二、图像去噪:

图像去噪是指减少数字图像中噪声的过程。

现实中的数字图像在数字化和传输过程中常受到成像设备与外部环境噪声干扰等影响,称为含噪图像或噪声图像。

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

OpenCV中常见的图像去噪声的方法有:

  • 均值去噪声
  • 高斯模糊去噪声
  • 非局部均值去噪声
  • 双边滤波去噪声
  • 形态学去噪声

三、OpenCV 非局部均值去噪函数:

1、OpenCV 4.1.0 中提供了以下几种非局部均值去噪调用方式:

  •  fastNlMeansDenoising() :用于 1 通道、2 通道或 3 通道 8 位图像。(单个灰度图像)

  •  fastNlMeansDenoisingColored() :用于 1 通道、2 通道、3 通道或 4 通道的 8 位或 16 位图像(16位下仅NORM_L1)。(彩色图像)

  •  fastNlMeansDenoisingMulti()  :用于 8 位 3 通道图像。(灰度图像序列)

  • fastNlMeansDenoisingColoredMulti():用于 8 位 3 通道图像序列。(彩色图像序列)

2、函数声明:

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

void fastNlMeansDenoising( InputArray                    src, 
                           OutputArray                   dst,
                           const std::vector<float>&     h,
                           int                           templateWindowSize = 7, 
                           int                           searchWindowSize = 21,
                           int                           normType = NORM_L2
                         );

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

void fastNlMeansDenoisingMulti( InputArrayOfArrays srcImgs, 
                                OutputArray dst,
                                int imgToDenoiseIndex, 
                                int temporalWindowSize,
                                float h = 3, 
                                int templateWindowSize = 7, 
                                int searchWindowSize = 21
                              );

void fastNlMeansDenoisingMulti( InputArrayOfArrays            srcImgs, 
                                OutputArray                   dst,
                                int                           imgToDenoiseIndex, 
                                int                           temporalWindowSize,
                                const std::vector<float>&     h,
                                int                           templateWindowSize = 7, 
                                int                           searchWindowSize = 21,
                                int                           normType = NORM_L2
                              );

void fastNlMeansDenoisingColoredMulti( InputArrayOfArrays srcImgs, 
                                       OutputArray dst,
                                       int imgToDenoiseIndex, 
                                       int temporalWindowSize,
                                       float h = 3, 
                                       float hColor = 3,
                                       int templateWindowSize = 7, 
                                       int searchWindowSize = 21
                                     );

四、示例代码:

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

using namespace cv;
using namespace std;

int main(int argc, char** argv) {
	Mat src = imread("../images/test.jpg");
	if (src.empty()) {
		printf("不能打开图像!\n");
		return -1;
	}

	namedWindow("1--原图", WINDOW_AUTOSIZE);
	imshow("1--原图", src);

	Mat result1;

	// 图像去噪
	fastNlMeansDenoisingColored(src, result1, 5, 5, 7, 21);
	imshow("2--fastNlMeansDenoisingColored", result1);

	waitKey(0);
	return 0;
}

五、运行效果:

fastNlMeansDenoisingColored()这个函数运行耗时有点长,即使我们用到的这张图像文件并不大。

经过去噪后的图像更加细腻清晰,美颜效果很好。右上方的文字清晰度提升明显。

示例图像文件信息:

程序运行效果图:


猜你喜欢

转载自blog.csdn.net/kingkee/article/details/93742358