空間濾波
一、圖片
〝福隆沙雕〞
〝臺北101〞
〝銘傳大學桃園校區 校景〞
〝銘傳大學 校徽〞
〝龜山島〞
1. 平滑化
使影像模糊化,用來隱藏小細節
※無權重 -> 較模糊
〝福隆沙雕〞
※有權重 -> 較清晰
〝福隆沙雕〞
2. 銳化
用來強化影像小細節,並凸顯色彩強度的變化
※四方位
〝臺北101〞
※八方位
〝臺北101〞
3. 浮水印
※預設位置
〝銘傳大學桃園校區 校景〞
※自己選擇位置
〝銘傳大學桃園校區 校景〞
4. 撒胡椒鹽
※撒胡椒鹽
〝龜山島〞
※可以撒很多很多胡椒鹽 → 雜訊多
〝龜山島〞
5. 去雜質
※中值濾波器
參考周圍取中間值
〝龜山島〞
※最小值濾波器
參考周圍取最小值
〝龜山島〞
※最大值濾波器
參考周圍取最大值
〝龜山島〞
※雜訊過多,導致中值濾波器無法將其去乾淨
〝龜山島〞
二、心得
「平滑化」
這部分單純帶入兩個PPT的公式,公式其實很簡單,做過一遍就會記得起來;
但是如果老師沒有給參考公式,要如何自己想到此方法,還真的不是那麼容易。
主要是讓影像變模糊,使其小細節被忽略,但若模糊程度過大,反而會壞事,
因為會使影像整個模糊不清,不過還是要看要運用在哪裡,C a s e b y c a s e!
總之,拿捏平滑化的係數其實是很重要的!
「銳化」
銳化可凸顯色彩強度的變化,會使影像看起來更加清楚。依照銳化結果我覺得,
說不定可以運用到需要找邊的問題,就算不一樣,應該也會有點類似吧!
「浮水印」
好用,可在影像標記出處,演算法也很簡單,只需把要重疊的點相加取平均即可!
但也因如此,如果能拿到浮水印的原圖,就表示我們可以將式子反推回去,如此一來,
就可以去掉別人上的浮水印了!因此,如果我以後要自己上浮水印,我一定記得,
把式子改一下,弄個係數什麼的,讓其他人無法輕易就去掉我的浮水印!
「撒胡椒鹽」
如果是像我一樣亂撒,其實沒什麼難度,只要 r a n d o m 一下就好!有進階版,
就是讓人選擇雜訊要佔幾%,並且讓這些雜訊接近平均的撒在影像上,這很難辦到!
因為想知道需要幾個雜訊並不難,難事難再讓雜訊平均分布在影像上面的這件事。
假設我現在要撒的雜訊只有10個,但是我的影像大小為 256 * 256 ( 甚至更大 ),
那麼什麼時候該撒雜訊就很不好辦了,因為如果抓得不好,可能只跑到影像前三行,
我的10個雜訊的 q u o t a 就已經用完了,那個雜訊就只分布在上面;相反的,
如果我雜訊要撒90個,而影像大小為 10 * 10 ,那麼就可能發生整張影像都跑完了,
還有剩下的雜訊 q u o t a 還沒有用。如此一來,撒胡椒鹽這回事,似乎真的不簡單!
因此,我只寫了小小的幾行程式,讓使用者可以調整胡椒鹽相對的多寡,
而無法指定胡椒鹽確切要佔幾 %。此外,我有讓胡椒鹽有兩種顏色( 黑 & 白 ),
讓胡椒鹽看起來相對更雜亂一些。
「去雜訊」
我寫了中值濾波器、最小值濾波器和最大值濾波器三種方法去雜訊。
其實這三個濾波器演算法大同小異,都是參考周圍的色彩值,差別只在於,
要選擇哪一個而已。其中中值濾波器就挺大眾的,可以將大部分Case的雜訊去除;
而最小值濾波器我覺得最適合用來去除偏白色的雜訊,最大值濾波器則剛好相反,
可以用來去除偏黑色的雜訊。但依照老師PPT上的方法,也就是指參考周圍一圈,
能力有限,當雜訊相對數量多時,就無法完全去除乾淨。
此外,我也拿過真的撒了胡椒鹽的玉米濃湯影像丟給程式跑,結果發現,
胡椒鹽根本就沒有去掉!後來我亂玩了一下,先把影像銳化一下,再執行中值濾波器,
有去掉是有去掉,但是只去掉其中的一、兩個小黑點,還不是整個胡椒鹽!
然後我開始思考原因,覺得原理應該跟雜訊太多去不乾淨一樣,因為中值濾波器,
是參考周圍一圈的色彩值然後取中間值,那如果某個雜訊很不幸周圍一圈也都是雜訊,
那取中間值依然還是雜訊啊!想來想去,讓我想到一個辦法,應該可以解決問題,
如果…我參考的色彩值不只周圍的一圈,而是兩圈、三圈…到很多圈,
那麼不就可以在雜訊是一大群的 C a s e 中,選到非雜訊的色彩值了!
至於要參考幾圈,可以讓使用者自己調整,直到真的去掉雜訊為止。真是好辦法呢!