計算機視覺實驗 新增椒鹽雜訊 高斯雜訊

2021-10-25 02:20:26 字數 2553 閱讀 5279

使用opencv+python

椒鹽雜訊(脈衝雜訊),在一幅影象裡隨機的將乙個畫素點變成椒鹽雜訊,其中椒雜訊畫素值是0,鹽雜訊是255。

生成(新增)椒鹽雜訊演算法步驟如下:

(1)輸入一幅影象並自定義訊雜比 snr (其取值範圍在[0, 1]之間);

(2)計算影象畫素點個數 sp, 進而得到椒鹽雜訊的畫素點數目 np = sp * (1-snr);

(3)隨機獲取要加噪的每個畫素位置img[i, j];

(4)隨機生成[0,1]之間的乙個浮點數;

(5)判定浮點數是否大於0.5,並指定畫素值為255或者0;

(6)重複3,4,5三個步驟完成所有畫素的np個畫素加粗樣式;

(7)輸出加噪以後的影象。

高斯雜訊,指的是他的概率密度函式服從高斯分布(正態分佈)的一類雜訊,計算過程與椒鹽雜訊類似。

import cv2 as cv

import numpy as np

# 將rgb顏色通道的影象轉為灰色

def rgb2gray(img):

h=img.shape[0]

w=img.shape[1]

img1=np.zeros((h,w),np.uint8)

for i in range(h):

for j in range(w):

# 變成灰色的公式

img1[i,j]=0.144*img[i,j,0]+0.587*img[i,j,1]+0.299*img[i,j,2]

return img1

# 新增雜訊

def sp_noise(img,snr):

h=img.shape[0]

w=img.shape[1]

img1=img.copy()

sp=h*w # 計算影象畫素點個數

np=int(sp*(1-snr)) # 計算影象椒鹽雜訊點個數

for i in range (np):

randx=np.random.randint(1,h-1) # 生成乙個 1 至 h-1 之間的隨機整數

randy=np.random.randint(1,w-1) # 生成乙個 1 至 w-1 之間的隨機整數

if np.random.random()<=0.5: # np.random.random()生成乙個 0 至 1 之間的浮點數

img1[randx,randy]=0

else:

img1[randx,randy]=255

return img1

# 新增高斯雜訊

def gasuss_noise(image, mean=0, var=0.001):

'''新增高斯雜訊

mean : 均值

var : 方差

'''image = np.array(image/255, dtype=float)

noise = np.random.normal(mean, var ** 0.5, image.shape)

out = image + noise

if out.min() < 0:

low_clip = -1.

else:

low_clip = 0.

out = np.clip(out, low_clip, 1.0)

out = np.uint8(out*255)

#cv.imshow("gasuss", out)

return out

image=cv.imread("test.jpeg")

grayimage=rgb2gray(image)

sp_noiseimage=sp_noise(grayimage,0.98) # 將訊雜比設定為0.98

# cv2.gaussianblur(grayimage, ksize=(9, 9), sigmax=0, sigmay=0) 這段**也是可以新增高斯雜訊的,更方便,但是不符合實驗的初衷

gasuss_noiseimage=gasuss_noise(grayimage,0,0.02) # 將訊雜比設定為0.98,就是將雜訊的比例設定為0.02

計算機視覺 高斯濾波

brycezou 163.com 1 一維高斯分布 g x 1 2 e x22 22 二維高斯分布 g x,y 12 2e x2 y 22 2 對於影象,常用二維零均值的高斯函式構建濾波器模板。include include using namespace std define pi 3.14159...

(計算機視覺)計算機視覺基礎

opencv cximage cimg freeimage opencv中vc庫的版本與visual studio版本的對應關係 vc8 2005 vc9 2008 vc10 2010 vc11 2012 vc12 2013 vc14 2015 vc15 2017 visual studio中的輔助...

計算機視覺

主講老師 曹洋 課程 視覺 基礎 底 層處理 影象處理 特徵提 取 中 層處理 影象分割 相機標 定 深度 估計 運 動估計 高層處 理 3d 重建 目 標識別 視 覺基 礎 底層 處理 圖 像處理 特徵提取 中層 處理 圖 像分割 相機標定 深度估 計 運動 估計 高層處理 3d重 建 目標 識別...