opencv c++ 图像噪声及去噪
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<Vec3b>(y, x) = Vec3b(255, 255, 255);}elseimg.at<Vec3b>(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
opencv c++ 图像噪声及去噪相关推荐
- python数字图像处理-图像噪声与去噪算法
图像噪声 椒盐噪声 概述: 椒盐噪声(salt & pepper noise)是数字图像的一个常见噪声,所谓椒盐,椒就是黑,盐就是白,椒盐噪声就是在图像上随机出现黑色白色的像素.椒盐噪声是一种 ...
- (100天2小时第二十九天)几种常见的图像噪声及去噪处理算法
一.背景 在图像获取.传输.存储过程中常常会受到各种噪声的干扰,从而影响图像的质量.并且图像预处理算法的好坏又直接关系到后续图像处理的效果,如图像分割.目标识别.边缘处理等,所以为了获得高质量数字图像 ...
- 图像噪声、去噪基本方法合集(Python实现)
文章目录 前言 本文主要参考冈萨雷斯的数字图像处理 (第4版),介绍图片中一些常见的噪声形式和常用的去噪方法,并且给出相应滤波方法的实现代码. 一.噪声分类 1.高斯噪声 2.泊松噪声 3.椒盐噪声 ...
- OpenCV之图像噪声
python 代码: import cv2 as cv import numpy as npdef add_salt_pepper_noise(image):h, w = image.shape[:2 ...
- 【OpenCV 4开发详解】图像噪声的种类与生成
本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...
- 23.代码简单实现模拟噪声(图像噪声/一、二阶矩/功率谱密度/at函数/rand函数)-- OpenCV从零开始到图像(人脸 + 物体)识别系列
本文作者:小嗷 微信公众号:aoxiaoji 吹比QQ群:736854977 简书链接:https://www.jianshu.com/u/45da1fbce7d0 本文你会找到以下问题的答案: 图像 ...
- python+OpenCv笔记(八):图像噪声(椒盐噪声、高斯噪声)
由于图像采集.处理.传输等过程不可避免的会受到噪声的污染,妨碍人们对图像理解及分析处理.常见的图像噪声有高斯噪声.椒盐噪声等. 一.椒盐噪声 椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一 ...
- 12、OpenCV实现图像的空间滤波——图像平滑
1.空间滤波基础概念 1.空间滤波基础 空间滤波一词中滤波取自数字信号处理,指接受或拒绝一定的频率成分,但是空间滤波学习内容实际上和通过傅里叶变换实现的频域的滤波是等效的,故而也称为滤波.空间滤波主要 ...
- 基于OpenCV的图像梯度与边缘检测!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:姚童,Datawhale优秀学习者,华北电力大学 严格的说,梯度计 ...
最新文章
- [CodeForces 300D Painting Square]DP
- Python-OpenCV 处理视频(一)(二): 输入输出 视频处理
- POJ1265(Pick定理的应用)
- mysql常用的hint
- ElasticSearch入门 —— 集群搭建
- 【C++grammar】左值、右值和将亡值
- 桌面Linux市场份额终于突破1%
- server安装 sql 发生mof语法错误_WIN7系统无法安装server2008R2,提示语法MOF错误
- 应用需要android权限,如何找出android应用程序需要的权限
- 2022年3月23日蜻蜓q旗舰版v1.2.1重大性能更新-优化加载列表数据方式-更加丝滑-后端增加goeasy
- ppt制作弹跳的小球动画效果_PPT制作弹跳的小球动画效果实例教程
- 记一次新旧系统数据迁移
- Java Swing
- Linux如何使用mail命令给outlook邮箱发送邮件
- 电驴搜索服务器正在连接,电驴未连接到服务器是什么原因?
- centos 8 的图形操作界面在哪_【行测备考】立体图形截面有哪些实用技法?
- rrpp协议如何修改_RRPP快速环网保护协议
- 良树机器人_fate系列在国内是否有过气的趋势?
- oracle 在plsql中创建procedure并调用
- 9岁有赞:新零售业务快速增长 推新品牌扶持计划