2017年1月7日 星期六

03360652 閻美雅 HW05

空間濾波

一、圖片

〝福隆沙雕〞

〝臺北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 中,選到非雜訊的色彩值了!
        至於要參考幾圈,可以讓使用者自己調整,直到真的去掉雜訊為止。真是好辦法呢!

沒有留言:

張貼留言