opencv c++ 图像噪声及去噪
创始人
2024-03-07 14:28:45
0

1、噪声类型及生成

1.1、类型

高斯噪声椒盐噪声、泊松噪声、乘性噪声,等。

具体解释参考:(31条消息) 图像噪声简介_yeler082的博客-CSDN博客_图像噪声

高斯噪声                                                        泊松噪声

乘性噪声                                                       椒盐噪声

 

 原图

1.2、来源

图像获取过程中

两种常用类型的图像传感器CCD和CMOS采集图像过程中,由于受传感器材料属性、工作环境、电子元器件和电路结构等影响,会引入各种噪声,如电阻引起的热噪声、场效应管的沟道热噪声、光子噪声、暗电流噪声、光响应非均匀性噪声。

图像信号传输过程中

由于传输介质和记录设备等的不完善,数字图像在其传输记录过程中往往会受到多种噪声的污染。另外,在图像处理的某些环节当输入的对象并不如预想时也会在结果图像中引入噪声。

生成椒盐噪声:

void QuickDemo::noise_img(Mat& image)
{Mat img;image.copyTo(img);//产生椒盐噪声RNG rng(12345);int h = img.rows;//行数int w = img.cols;//列数int nums = 10000;//噪点个数定义//通过循环随机在图像上任意点生加上黑白噪声(生成概率相同)for (auto i = 0; i < nums; ++i) {//图像随机点坐标生成int x = rng.uniform(0, w);int y = rng.uniform(0, h);if (i % 2 == 1) {img.at(y, x) = Vec3b(255, 255, 255);}elseimg.at(y, x) = Vec3b(0, 0, 0);}namedWindow("椒盐噪声", WINDOW_FREERATIO);imshow("椒盐噪声", img);}

生成高斯噪声:

利用现有API

randn(inputMat, 与输入图像相同维度的均值,与输入图像相同维度的方差);

inputMat——在生成噪声图像时的输入矩阵为与原始图像大小类型均相同空矩阵

void QuickDemo::noise_img(Mat& image)
{//产生高斯噪声Mat noise = Mat::zeros(image.size(), image.type());randn(noise, (25, 25, 25), (30, 30, 30));//生成噪声图像Mat dst;add(noise, image, dst);namedWindow("高斯噪声", WINDOW_FREERATIO);imshow("高斯噪声", dst);
}

参考:(31条消息) 图像噪声简介_yeler082的博客-CSDN博客_图像噪声

2、去除噪声

2.1、中值滤波

将异常像素点取其周围一层或多层像素点,进行排列,将排列后的中值取代异常像素点值

常用于去除椒盐噪声(因为椒盐噪声是在图像上均匀随机产生的极限像素点值),但当异常点占原图大部分时就会无效果。

opencvAPI

mediaBlur(input ,output , kernelSize);

kernelSize——卷积核大小,int型;

代码:

    Mat dst;medianBlur(img, dst, 5);namedWindow("中值滤波", WINDOW_FREERATIO);imshow("中值滤波", dst);

2.2、高斯滤波

顾名思义,对高斯噪声效果较好

	GaussianBlur(dst2, dst, Size(5, 5), 0);namedWindow("高斯滤波", WINDOW_FREERATIO);imshow("高斯滤波", dst);

 2.3、边缘保留滤波(EPF)

a)高斯双边滤波

 

 API

d——双边模糊近邻选用像素点半径,和sigmaSpace一起控制卷积核大小,如果为0,则只由sigmaSpace制卷积核大小。

 sigmaColor——双边模糊颜色阈值,像素值大于该值的像素点将被处理。

sigmaSpace——双边模糊空间阈值,控制卷积核大小。

bilateralFilter(img, dst, 0, 100, 10);

b)非局部均值滤波

对像素点进行处理时,对周围像素点赋予权值,像素值相近的周边点赋予较高权值,像素值差距大的赋予较低权值。

 API

 官网OpenCV: Denoising

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...