亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

OpenCV實現(xiàn)高斯噪聲

 更新時間:2021年06月24日 08:35:59   作者:我有一個夢想  
這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)高斯噪聲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了OpenCV實現(xiàn)高斯噪聲的具體代碼,供大家參考,具體內(nèi)容如下

OpenCV 中提供了fill()函數(shù)可以產(chǎn)生均勻分布或者高斯分布(正態(tài)分布)的隨機數(shù),我們可以利用該函數(shù)產(chǎn)生符合高斯分布的隨機數(shù),之后在圖像中加入這些隨機數(shù)即可 

void fill( InputOutputArray mat, int distType, InputArray a, InputArray b, bool saturateRange = false );
  • mat:用于存放隨機數(shù)的矩陣,目前只支持低于5通道的矩陣。
  • distType:隨機數(shù)分布形式選擇標志,目前生成的隨機數(shù)支持均勻分布(RNG::UNIFORM,0)和高斯分布(RNG::NORMAL,1)。
  • a:確定分布規(guī)律的參數(shù)。當選擇均勻分布時,該參數(shù)表示均勻分布的最小下限;當選擇高斯分布時,該參數(shù)表示高斯分布的均值。
  • b:確定分布規(guī)律的參數(shù)。當選擇均勻分布時,該參數(shù)表示均勻分布的最大上限;當選擇高斯分布時,該參數(shù)表示高斯分布的標準差。
  • saturateRange:預飽和標志,僅用于均勻分布。

該函數(shù)用于生成指定分布形式的隨機數(shù)填充矩陣,可以生成符合均勻分布的隨機數(shù)和符合高斯分布隨機數(shù)。函數(shù)的第一個參數(shù)輸入用于存儲生成隨機數(shù)的矩陣,但是矩陣的通道數(shù)必須小于等于4。第二個參數(shù)是選擇隨機數(shù)分布形式的標志,該函數(shù)目前只支持兩種分布形式,分別是均勻分布(RNG::UNIFORM,簡記0)和高斯分布(RNG::NORMAL,簡記1)。函數(shù)的第三個和第四個參數(shù)為確定隨機數(shù)分布規(guī)律的參數(shù),第三個參數(shù)在均勻分布時表示均勻分布的最小下限,在高斯分布時表示高斯分布的均值;第四個參數(shù)在均勻分布時表示均勻分布的最大上限,在高斯分布時表示高斯分布的標準差。最后一個參數(shù)是預飽和標志,僅用于均勻分布,我們使用其默認式即可。

在圖像中添加高斯噪聲大致分為以下4個步驟:

Step1:首先需要創(chuàng)建一個與圖像尺寸、數(shù)據(jù)類型以及通道數(shù)相同的Mat類變量.
Step2:通過調(diào)用fill()函數(shù)在Mat類變量中產(chǎn)生符合高斯分布的隨機數(shù)。
Step3:將原圖像和含有高斯分布的隨機數(shù)矩陣相加。
Step4:得到添加高斯噪聲之后的圖像。

簡單示例

//
// Created by smallflyfly on 2021/6/11.
//
 
 
#include "opencv2/opencv.hpp"
#include "opencv2/highgui.hpp"
 
#include <iostream>
 
using namespace std;
using namespace cv;
 
int main() {
 
    Mat im = imread("test.jpg");
    resize(im, im, Size(0, 0), 0.5, 0.5);
 
    Mat gray;
    cvtColor(im, gray, CV_BGR2GRAY);
 
    Mat rgbNoise = Mat::zeros(im.rows, im.cols, im.type());
    Mat grayNoise = Mat::zeros(gray.rows, gray.cols, gray.type());
 
    RNG rng;
    rng.fill(rgbNoise, RNG::NORMAL, 10, 20);
    rng.fill(grayNoise, RNG::NORMAL, 10, 20);
 
    imshow("three channels noise", rgbNoise);
    imshow("one channels noise", grayNoise);
 
    im = im + rgbNoise;
    gray = gray +grayNoise;
 
    imshow("add noise rgb", im);
    imshow("add noise gray", gray);
 
    waitKey(0);
 
    destroyAllWindows();
 
 
    return 0;
 
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C++ 輸入scanf()和輸出printf()的操作

    C++ 輸入scanf()和輸出printf()的操作

    這篇文章主要介紹了C++ 輸入scanf()和輸出printf()的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 全局靜態(tài)存儲區(qū)、堆區(qū)和棧區(qū)深入剖析

    全局靜態(tài)存儲區(qū)、堆區(qū)和棧區(qū)深入剖析

    在C++中,內(nèi)存可分為系統(tǒng)數(shù)據(jù)區(qū),自由存儲區(qū),文本區(qū),const數(shù)據(jù)區(qū),全局靜態(tài)區(qū),堆區(qū)和棧區(qū)
    2012-11-11
  • C++使用jsoncpp解析json的方法示例

    C++使用jsoncpp解析json的方法示例

    這篇文章主要介紹了C++使用jsoncpp解析json的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • C和C++的函數(shù)調(diào)用約定你知道多少

    C和C++的函數(shù)調(diào)用約定你知道多少

    這篇文章主要為大家詳細介紹了C和C++的函數(shù)調(diào)用約定,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 解析C語言與C++的編譯模型

    解析C語言與C++的編譯模型

    C++繼承了C的編譯模型,C語言的編譯鏈接模型相對簡潔,但C++繼承了這些機制之后變得更加復雜難以理解,這里就來帶大家簡要解析C語言與C++的編譯模型
    2016-05-05
  • C++實現(xiàn)逆波蘭式

    C++實現(xiàn)逆波蘭式

    這篇文章主要為大家詳細介紹了C++實現(xiàn)逆波蘭式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C++泛型算法的一些總結

    C++泛型算法的一些總結

    以下是對C++中的泛型算法進行了總結介紹。需要的朋友可以過來參考下
    2013-08-08
  • c/c++中struct定義、聲明、對齊方式解析

    c/c++中struct定義、聲明、對齊方式解析

    這篇文章通過C/C++的兩種聲明方式開始,給大家詳細分析了/c+中struct定義、聲明、對齊方式,對此有興趣的朋友可以參考學習下。
    2018-03-03
  • C++中map和set封裝實現(xiàn)示例

    C++中map和set封裝實現(xiàn)示例

    我們知道,map與set所使用的都是紅黑樹,下面這篇文章主要給大家介紹了關于C++中map和set封裝實現(xiàn)的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • C++ opencv ffmpeg圖片序列化實現(xiàn)代碼解析

    C++ opencv ffmpeg圖片序列化實現(xiàn)代碼解析

    這篇文章主要介紹了C++ opencv ffmpeg圖片序列化實現(xiàn)代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08

最新評論