人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

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

發(fā)布日期:2021-12-28 02:21 | 文章來源:站長之家

一、圖像噪聲

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

二、椒鹽噪聲

椒鹽噪聲是數(shù)字圖像中的常見噪聲,一般是圖像傳感器、傳輸信道及解碼處理等產(chǎn)生的黑白相間的亮暗點噪聲,椒鹽噪聲常由圖像切割產(chǎn)生。椒鹽噪聲是指兩種噪聲:鹽噪聲和椒噪聲。鹽噪聲一般是白色噪聲,椒噪聲一般為黑色噪聲。前者屬于高灰度噪聲,或者屬于低灰度噪聲,一般兩種噪聲同時出現(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ù)內(nèi) 
		j = std::rand() % image.rows; // 取余數(shù)運算,保證在圖像的行數(shù)內(nèi) 
		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;
}

四、結(jié)果展示

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()

六、結(jié)果展示

1、原圖

2、添加椒鹽噪聲

七、總結(jié)

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

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部