程式碼:點我
(圖引id:47998307)
這次作業做的是濾波器,此作業有中值濾波器、平滑濾波器及銳化濾波器,圖.1是程式介面,已經把圖給叫進來了,此程式有個還原影像,可將影像還原成原本的樣子
然後先灑胡椒鹽(圖.2)之後進行中值濾波器(圖.3)
中值濾波器是找自己跟自己相鄰的8個點中排行第5的點,再讓他的值成為自己點的值,用此方法來去除雜訊。所以要先讓這9個點排序(泡泡排序即可),之後就容易找出大小第5的點,沒辦法完全去除是因為有時候雜訊剛好是排行第5,所以會讓自己的值變成雜訊的值。
之後是弱化平滑濾波器(圖.4)及強化平滑濾波器(圖.5)
平滑濾波器我還不太懂可以用在哪裡,不過做出來有讓圖平滑了一些。
弱化濾波器是將自己跟自己相鄰的8個點相加後除以9,再成為自己的值,大致上長得像下面的樣子
1 + 1 + 1
( 1 + 1 + 1 )/9
1 + 1 + 1
所以做出來會比較平滑一些
強化濾波器雖然也是相加在除,不過比重有差,自己的上下左右4個點要乘以2,自己則乘以4,相加後最後再除以16(1+2+1+2+4+2+1+2+1=16),再成為自己的值,大致上長得像下面的樣子
*1 + *2 + *1
( *2 + *4 + *2 )/9
*1 + *2 + *1
因為自己的比重最大,比較能保留住自己的值,所以感覺上變化沒有弱化來的明顯
最後是弱化銳化濾波器(圖.6)及強化銳化濾波器(圖.7)
銳化濾波器把自己的特色強化,感覺上適合拿來找特徵點。
弱化濾波器是將自己點的值乘以五減掉上下左右四點的值,所以沒有用到角落的四個點,大致上長得像下面的樣子
+0 -1 +0
-1 +5 -1
+0 -1 +0
讓自己的特徵明顯
強化濾波器就用到了角落的4個點,將自己的值乘以9減掉自己相鄰的8個點,大致上長得像下面的樣子
-1 -1 -1
-1 +9 -1
-1 -1 -1
自己的特色更明顯了
本次作業也比之前難一些,雖然濾波器的部分知道後就可以寫出來,但
bPtrImageRow=(Byte*)Image1->Picture->Bitmap->ScanLine[i];(這個是Image1)
bPtrNewImageRow=(Byte*)Image2->Picture->Bitmap->ScanLine[i];
跟
bPtrImageRow=(Byte*)Image2->Picture->Bitmap->ScanLine[i];(這個是Image2)
bPtrNewImageRow=(Byte*)Image2->Picture->Bitmap->ScanLine[i];
哪個濾波器要用哪個必須清楚,這次卡最久的部分是銳化濾波器用到下面那一個,導致出來的圖非常奇怪,找了好久終於找到原來要用上面那一個,除此之外沒大問題,本次作業可以對濾波器有些認識,是個不錯的練習
沒有留言:
張貼留言