Android OpenCV(十七):高斯噪声

Stella981
• 阅读 719

高斯噪声

高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。常见的高斯噪声包括起伏噪声、宇宙噪声、热噪声和散粒噪声等等。这类噪声主要来源于电子电路噪声和低照明度或高温带来的传感器噪声,也成为正态噪声,是在实践中经常用到的噪声模型。

区别于椒盐噪声随机出现在图像中的任意位置,高斯噪声出现在图像中的所有位置。且概率密度函数如下所示:

Android OpenCV(十七):高斯噪声
其中z表示图像像素灰度值,μ表示像素值的平均值或期望值,σ表示像素值的标准差。标准差的平方σ2称为方差。

μ是正态分布的位置参数,描述正态分布的集中趋势位置。概率规律为取与μ邻近的值的概率大,而取离μ越远的值的概率越小。正态分布以X=μ为对称轴,左右完全对称。正态分布的期望、均数、中位数、众数相同,均等于μ。

σ描述正态分布资料数据分布的离散程度,σ越大,数据分布越分散,σ越小,数据分布越集中。也称为是正态分布的形状参数,σ越大,曲线越扁平,反之,σ越小,曲线越瘦高

API

目前为止OpenCV 4中没有提供专门用于为图像添加高斯噪声的函数。步骤如下图:

Android OpenCV(十七):高斯噪声

生成步骤

操作

/** * 高斯噪声 * author: yidong * 2020/4/4 */class GaussianNoiseActivity : AppCompatActivity() {    private lateinit var mBinding: ActivityGaussianNoiseBinding    private lateinit var mRgb: Mat    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        mBinding = DataBindingUtil.setContentView(this, R.layout.activity_gaussian_noise)        val bgr = Utils.loadResource(this, R.drawable.lena)        mRgb = Mat()        Imgproc.cvtColor(bgr, mRgb, Imgproc.COLOR_BGR2RGB)        showMat(mBinding.ivLena, mRgb)        buildGaussian()    }    private fun buildGaussian() {        val noise = Mat(mRgb.size(), mRgb.type())        val result = Mat()        val mean = MatOfDouble()        val dev = MatOfDouble()        Core.meanStdDev(mRgb, mean, dev)        Core.randn(noise, mean[0, 0][0], dev[0, 0][0])        showMat(mBinding.ivGaussian, noise)        Core.add(mRgb, noise, result)        showMat(mBinding.ivResult, result)        noise.release()        result.release()    }    override fun onDestroy() {        mRgb.release()        super.onDestroy()    }    private fun showMat(view: ImageView, source: Mat) {        val bitmap = Bitmap.createBitmap(source.width(), source.height(), Bitmap.Config.ARGB_8888)        Utils.matToBitmap(source, bitmap)        view.setImageBitmap(bitmap)    }}

效果

Android OpenCV(十七):高斯噪声

高斯噪声

源码

https://github.com/onlyloveyd/LearningAndroidOpenCV

本文分享自微信公众号 - 微卡智享(VaccaeShare)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
OpenCV 应用(1)卡尔曼滤波跟踪
0卡尔曼OPENCV预测鼠标位置卡尔曼滤波不要求信号和噪声都是平稳过程的假设条件。对于每个时刻的系统扰动和观测误差(即噪声),只要对它们的统计性质作某些适当的假定,通过对含有噪声的观测信号进行处理,就能在平均的意义上,求得误差为最小的真实信号的估计值。因此,自从卡尔曼滤波理论问世以来,
Stella981 Stella981
3年前
Android OpenCV(二十):高斯滤波
高斯滤波高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值
Wesley13 Wesley13
3年前
TFHE:环面上全同态加密方案学习笔记1
TFHE:环面上全同态加密方案学习笔记1全同态加密全同态算法应用之一:外包计算。TFHE与全同态全同态加密中的噪声TFHETorus环面TLWE密文的对称加密TFHE的三种密文形式TFHE的外积加速层次TFHE(TFHEINLEVELE
Stella981 Stella981
3年前
Android OpenCV(十六):椒盐噪声
椒盐噪声椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。椒盐噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。例如失效的感应器导致像素值为最小值,饱和的感应器导致像素值为最大值。椒盐噪声是指两种噪声:盐噪
Stella981 Stella981
3年前
Inter Speech19
内容有很多是来之与论文,PPT,知乎的回答,侵权就加上您的信息~谢谢.1\.VQvae不懂.2. 噪声加权的一个主要用途是测量音频设备中的残余噪声,通常在节目材料的安静时刻以嘶嘶声或嗡嗡声的形式出现。这里加权的目的是为了强调我们的耳朵最容易感知到的听觉频谱部分,并减弱对我们响度感知影响较小的部分,以便得到一个与主观效果很好相关的测量数据
贾元春 贾元春
4个月前
Stable Diffusion 商业变现与绘画大模型多场景实战[完结12章]
前言:ai绘画软件StableDiffusion(软件下载,自己还原:/s/1Ayqx1caFcUluUFgflXEAg提取码:53h7)是一种通过模拟扩散过程,将噪声图像转化为目标图像的文生图模型,具有较强的稳定性和可控性,可以将文本信息自动转换成高质量
子桓 子桓
1年前
专业raw图像处理 DxO PhotoLab 7 for mac中文激活版
DxOPhotoLab(原DxOOpticsPro)提供了一整套智能辅助校正,您可以随时手动微调。控制照片的各个方面:有效地消除噪音,消除光线限制,恢复颜色细节,应用复杂的光学校正,并增强细节。对于大多数照片编辑软件来说,减少RAW图像中的数字噪声是一项持
四儿 四儿
1年前
语音识别技术的挑战与机遇再探讨
一、引言随着科技的不断发展,语音识别技术得到了广泛应用。然而,语音识别技术在发展过程中面临着许多挑战,同时也带来了许多机遇。本文将再探讨语音识别技术的挑战与机遇。二、语音识别技术的挑战1.噪声干扰和口音差异:噪声干扰和口音差异是语音识别中最常见的挑战之一。
赵颜 赵颜
7个月前
1W 3KVDC 隔离 单输出 DC/DC 电源模块——TPB-1W 系列
TPB1W系列产品是专门针对PCB上分布式电源系统中需要与输入电源隔离且输出精度要求较高的电源应用场合而设计。该产品适用于;1)输入电源的电压变化≤±5%;2)输入输出之前要求隔离电压≥3000VDC;3)对输出电压稳定度和输出纹波噪声要求高;