2017年1月5日 星期四

03836096 王秀婷 HW-5

HomeWork-5_Spatial Filtering

《作業心得:》

這個作業需要寫出將影像做 Smoothing、Sharping 和 Pepper-and-salt Noise and Median Filter 的濾波器,程式的產出過程對我來說一樣是個很大的挑戰,不過跟著老師的步驟很順利的完成了 Smoothing 的程式,也讓我對C++語言有了更多的認識。

不過這個作業因自己的疏失遺失了儲存專案的USB,一度停擺了.....
只好打回原形重新來過,憑著片段的記憶成及上課的筆記,慢慢的終於將程式完成了。

這個程式最後的完成品,雖沒有很完美的介面呈現,但自己確超有成就感的,也達成了作業的要求,過程中除了參考老師上課的PPT及筆記、上網查資料、也參考了Blogger中同學和學長姐們的作業心得及過程,這些都給我很多的幫助。接下來就來看看我的程式執行的情況及實驗中遇到的問題及處理方法。


《程式執行的情況及實驗中遇到的問題及處理方法》

首先一樣先Load須處理的原始影像,為了讓影像有立即比較的效果,這個程式我沒有做分頁處理,而是在Form1中同時呈現處理前後的影像,至於為何一次Load兩個影像,在後面的實驗過程中再作說明。

原始影像
接下來看看Smoothing Spatial Filter 之後,影像的處理狀況:
經過Smoothing處理的影像,成功的為影像達成了平滑的效果,以下為程式實驗的結果。

原始圖&平滑處理後的結果
========================================================================
完成了平滑濾波器之後,Sharping做起來也就不那麼難了,只要將Filter處理的公式修改為Sharping的公式,便成功完成了。

原始圖&銳化處理後的結果
=======================================================================
而胡椒鹽雜訊就花了我一些些時間了,加上雜訊並不難,我讓程式加了5%雜訊在影像中,但Refresh後Image3中確只有出現雜訊而沒有原始的影像,頓時讓我傻眼了.......
試了幾次都無法將影像和雜訊同時在Image3中呈現,後來想到若在程式一開始就將檔案一同Load進Image2和Image3是否就可以解決這個問題?實驗結果果然成功了,以下是將影像加入5%雜訊後的結果。
原始圖&加入5%雜訊後的影像

在加入雜訊後接下來就是要處理雜訊了,而中值濾波器便可以解決這個問題,而寫這個程式前我也上網查了很多資料來完成這個程式。

而何謂中值濾波器呢?我在網路搜尋到了一個較為白話的解釋:
假設圖檔裡面有一組矩陣內容如下,我們以97為中心點找出3*3的範圍所有的數字,然後將這組數字依照大小經過排列得到0,2,3,3,4,6,10,15,97,接下然我們選擇中間那個數字4 取代原本的97做輸出,這樣的做法則稱為中值濾波器。

以下為5%胡椒鹽雜訊經過中值濾波器處理後的結果,不過在處理過後影像邊緣的部份雜訊並沒有被處理到,試了幾次都沒有辦法成功完美清除,這是我必須再改進之處。


原始圖&清除雜訊過後

沒有留言:

張貼留言