高斯噪聲是一個(gè)均值為 0 方差為 的正態(tài)分布评抚,是一個(gè)加性噪聲熟空。但要正確地給圖片添加高斯噪聲谦秧,還要取決于程序中讀入圖片的數(shù)據(jù)格式竟纳。
如果圖片的數(shù)據(jù)格式為 uint8,也即數(shù)據(jù)的范圍為 [0, 255]疚鲤,那么直接生成對(duì)應(yīng)方差的噪聲锥累,然后加到圖片上去。
# clean_image uint8 (128, 128)
noise_image = clean_image + np.random.randn(128, 128) * sigma
此處 np.random.rand(128, 128) 生成一個(gè)均值為 0 方差為 1 的正態(tài)分布集歇,然后我們乘以 桶略,將方差調(diào)整到
,再加到圖片上即可鬼悠。
如果圖片的數(shù)據(jù)格式為浮點(diǎn)型删性,而且數(shù)據(jù)的范圍為 [0, 1],那么我們需要對(duì)噪聲的方差做一些調(diào)整焕窝,真正加到圖片上的噪聲方差應(yīng)該為 蹬挺,也即
。
# clean_image float32 (128, 128)
noise_image = clean_image + np.random.randn(128, 128) * sigma / 255
此處 np.random.rand(128, 128) 生成一個(gè)均值為 0 方差為 1 的正態(tài)分布它掂,然后我們乘以 巴帮,將真實(shí)方差調(diào)整到
,再加到圖片上即可虐秋。
在 MATLAB 中榕茧,imnoise 會(huì)對(duì)圖片進(jìn)行處理,將像素值縮放到 [0, 1] 之間客给,因此我們?cè)趥魅敕讲畹臅r(shí)候也必須要先進(jìn)行調(diào)整用押。
noise_image = imnoise(clean_image, 'gaussian', 0, sigma^2/255^2)
有時(shí)候,我們真的需要對(duì)知識(shí)抱有敬畏之心靶剑,任何一個(gè)小的知識(shí)點(diǎn)都沒(méi)有那么簡(jiǎn)單蜻拨。但如果你在這些小的知識(shí)點(diǎn)上犯了小錯(cuò)誤,后果卻是不可想象的桩引。千里之堤毀于蟻穴缎讼,與君共勉!