參考(1) 椒鹽雜訊
椒鹽雜訊也稱脈衝雜訊,它是一種隨機出現的白點或者黑點,可能是亮的區域有黑色畫素或是在暗的區域有白色畫素(或是兩者皆有)。
影象模擬新增椒鹽雜訊是通過:隨機獲取畫素點,並設定為高亮度點和低亮度點來實現的。
(2) 高斯雜訊
高斯雜訊是指概率密度函式服從高斯分布的一類雜訊。
特別的,如果乙個雜訊,它的幅度分布服從高斯分布,而它的功率譜密度服從均勻分布,則稱這個雜訊為高斯白雜訊。
高斯白雜訊 功率譜密度頻譜圖 和 雜訊幅值分布圖的如下:
效果圖
code
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 : 方差
) # 將訊雜比設定為0.98
# cv2.gaussianblur(grayimage, ksize=(9, 9), sigmax=0, sigmay=0) 這段**也是可以新增高斯雜訊的,更方便,但是不符合實驗的初衷
gasuss_noiseimage=
gasuss_noise
(grayimage,0,
0.02
) # 將訊雜比設定為0.98,就是將雜訊的比例設定為0.02
()
在這裡面,我也用imwrite寫入資料夾之中了。讓後續可用。
給影象新增各種雜訊
opencv6 最小外接矩形minAreaRect
最近在做目標跟蹤相關的實驗,其中牽涉到最小外接矩形或最小外接圓形的函式使用,把自己實驗的過程記錄一下,希望可以幫助大家。minarearect 函式用於給定的2d點集,函式原型 rotatedrect minarearect inputarray points 只有乙個輸入引數,型別可以是vecto...
OpenCV實踐之路 暗通道去霧簡單實現
參考 環境引數 vs2010 opencv 2.4.13 i x 待去霧的影象 j x 無霧影象 a 全球大氣光成分 t 折射率 大氣傳遞係數 在無霧影象中,每乙個區域性區域都很有可能會有陰影,或者是純顏色的東西,又或者是黑色的東西。因此,每乙個區域性區域都很有可能有至少乙個顏色通道會有很低的值。把...
OpenCV學習記錄6
一 學習內容 1 獲取影象座標處的畫素值,並修改圖對比度 二 include include using namespace std using namespace cv int main int argc,char ar char figure name figure1 namedwindow f...