欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用OpenCV給彩色圖像添加椒鹽噪聲的方法

 更新時間:2021年10月08日 11:11:38   作者:點云俠  
椒鹽噪聲是數(shù)字圖像中的常見噪聲,一般是圖像傳感器、傳輸信道及解碼處理等產生的黑白相間的亮暗點噪聲,椒鹽噪聲常由圖像切割產生,這篇文章主要給大家介紹了關于利用OpenCV給彩色圖像添加椒鹽噪聲的相關資料,需要的朋友可以參考下

一、圖像噪聲

圖像噪聲是圖像在獲取或者傳輸過程中受到隨機信號干擾,妨礙人們對圖像理解及分析處理的信號。很多時候將圖像看作隨機過程,因而描述噪聲的方法完全可以借用隨機過程的描述,即使用其概率分布函數(shù)和概率密度分布函數(shù)。圖像噪聲的產生來自圖像獲取中的環(huán)境條件和傳感元器件自身的質量,圖像在傳輸過程中產生圖像噪聲的主要因素是所用的傳輸信道受到噪聲污染。

二、椒鹽噪聲

椒鹽噪聲是數(shù)字圖像中的常見噪聲,一般是圖像傳感器、傳輸信道及解碼處理等產生的黑白相間的亮暗點噪聲,椒鹽噪聲常由圖像切割產生。椒鹽噪聲是指兩種噪聲:鹽噪聲和椒噪聲。鹽噪聲一般是白色噪聲,椒噪聲一般為黑色噪聲。前者屬于高灰度噪聲,或者屬于低灰度噪聲,一般兩種噪聲同時出現(xiàn),呈現(xiàn)黑白雜點。去除椒鹽噪聲常用的方法是中值濾波。

三、C++代碼

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

using namespace cv;
using namespace std;

//-----------------------------------椒鹽噪聲函數(shù)----------------------------------------------
void saltAndPepper(cv::Mat image, int n)
{
	for (int k = 0; k < n / 2; k++)
	{
		// 隨機確定圖像中添加椒鹽噪聲的位置
		int i, j;
		i = std::rand() % image.cols;       // 取余數(shù)運算,保證在圖像的列數(shù)內 
		j = std::rand() % image.rows;       // 取余數(shù)運算,保證在圖像的行數(shù)內 
		int write_black = std::rand() % 2;  // 判定為白色噪聲還是黑色噪聲的變量
		// 添加白色噪聲
		if (write_black == 0)               
		{
			image.at<cv::Vec3b>(j, i)[0] = 255; //cv::Vec3b為opencv定義的一個3個值的向量類型  
			image.at<cv::Vec3b>(j, i)[1] = 255; //[]指定通道,B:0,G:1,R:2  
			image.at<cv::Vec3b>(j, i)[2] = 255;

		}
		// 添加黑色噪聲
		else  
		{
			image.at<cv::Vec3b>(j, i)[0] = 0; //cv::Vec3b為opencv定義的一個3個值的向量類型  
			image.at<cv::Vec3b>(j, i)[1] = 0; //[]指定通道,B:0,G:1,R:2  
			image.at<cv::Vec3b>(j, i)[2] = 0;
		}
	}

}


int main()
{
	Mat lena = imread("qq.jpg");

	if (lena.empty())
	{
		cout << "請確認圖像文件名稱是否正確" << endl;
		return -1;
	}
	imshow("原圖", lena);
	saltAndPepper(lena, 10000);       // 彩色圖像添加椒鹽噪聲
	imshow("添加噪聲", lena);

	waitKey(0);

	return 0;
}

四、結果展示

1、原圖

2、添加椒鹽噪聲

五、python代碼

import numpy as np
import cv2


def salt_pepper_noise(image, prob):
    """
    添加椒鹽噪聲
    :param image: 輸入圖像
    :param prob: 噪聲比
    :return: 帶有椒鹽噪聲的圖像
    """
    salt = np.zeros(image.shape, np.uint8)
    thres = 1 - prob
    for i in range(image.shape[0]):
        for j in range(image.shape[1]):
            rdn = np.random.rand()
            if rdn < prob:
                salt[i][j] = 0
            elif rdn > thres:
                salt[i][j] = 255
            else:
                salt[i][j] = image[i][j]
    return salt


src = cv2.imread('qq.jpg')
cv2.namedWindow('input_image', cv2.WINDOW_AUTOSIZE)
cv2.imshow('input_image', src)
tar = salt_pepper_noise(src, 0.01)
cv2.imshow('noise', tar)
cv2.waitKey(0)
cv2.destroyAllWindows()

六、結果展示

1、原圖

2、添加椒鹽噪聲

七、總結

到此這篇關于利用OpenCV給彩色圖像添加椒鹽噪聲的文章就介紹到這了,更多相關OpenCV彩色圖像添加椒鹽噪聲內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python3如何使用saml2.0協(xié)議接入SSO

    python3如何使用saml2.0協(xié)議接入SSO

    SAML是一種用于在不同系統(tǒng)之間傳輸安全聲明的XML框架,通過IDP和SP之間的重定向訪問,SP向IDP請求用戶身份認證,IDP驗證用戶身份后返回SAML應答,本文以python3和python3-saml庫為例,介紹了如何接入公司SSO系統(tǒng),包括配置和處理登錄和登出請求
    2024-11-11
  • 如何用python給朋友做生日快樂祝福

    如何用python給朋友做生日快樂祝福

    生活中除了給男神女神表白,還會遇到朋友過生日,所以小編今天就給大家?guī)砹艘粋€送給朋友的生日祝福程序,這篇文章主要給大家介紹了關于如何用python給朋友做生日快樂祝福的相關資料,需要的朋友可以參考下
    2023-11-11
  • Python使用Selenium爬取淘寶異步加載的數(shù)據方法

    Python使用Selenium爬取淘寶異步加載的數(shù)據方法

    今天小編就為大家分享一篇Python使用Selenium爬取淘寶異步加載的數(shù)據方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • tensorflow模型保存、加載之變量重命名實例

    tensorflow模型保存、加載之變量重命名實例

    今天小編就為大家分享一篇tensorflow模型保存、加載之變量重命名實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python實現(xiàn)推箱子游戲

    python實現(xiàn)推箱子游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)推箱子游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • python?list與numpy數(shù)組效率對比

    python?list與numpy數(shù)組效率對比

    這篇文章主要介紹了python?list與numpy數(shù)組效率對比分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python常用配置文件ini、json、yaml讀寫總結

    Python常用配置文件ini、json、yaml讀寫總結

    用的配置文件格式有ini、json、yaml等,下面簡單給大家介紹下,Python如何讀寫這幾種格式的文件,對Python讀寫ini、json、yaml配置文件相關知識感興趣的朋友一起看看吧
    2021-07-07
  • TF-IDF算法解析與Python實現(xiàn)方法詳解

    TF-IDF算法解析與Python實現(xiàn)方法詳解

    這篇文章主要介紹了TF-IDF算法解析與Python實現(xiàn)方法詳解,文章介紹了tf-idf算法的主要思想,分享了Python實現(xiàn)tr-idf算法所必要的預處理過程,以及具體實現(xiàn)代碼等相關內容,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • python去除所有html標簽的方法

    python去除所有html標簽的方法

    這篇文章主要介紹了python去除所有html標簽的方法,涉及Python正則替換的相關技巧,非常簡單實用,需要的朋友可以參考下
    2015-05-05
  • Python OpenCV快速入門教程

    Python OpenCV快速入門教程

    這篇文章主要介紹了Python OpenCV快速入門教程,幫助大家更好的利用opencv處理圖像,感興趣的朋友可以了解下
    2021-04-04

最新評論