2012年11月16日 星期五

99360134 徐賢傑 HW03

         這次的作業,我的程式繼上一個作業繼續加強功能,首先遇到的困難是之前打的程式雜亂無章,不好管理並新增功能。所以首先是整理了所有程式碼,並將之前所有寫過的程式碼大大整理了一番,分類並將重複的程式碼以方法取代。
 
         這張是Windows的預設圖片,挑出來做分析討論
 
原圖
 
 
 
 
 
 
一、平滑化
 
 
假設這是一張圖片15*11的圖片,每一個方格代表一個Pixel,每個方格內也有RGB三個色彩值,
 
由於平滑化是將九宮格內的Pixel加起來再平均除以九,
 

又由於邊框不能算在內,所以只能平滑化最外圍Pixel以內的圖
        為了彌補這個缺點,我有想過利用更大一圈的矩陣去放此圖片,然後去偵測九宮格的外圍八格是否有色彩值,若沒有色彩值就略過,也就是最邊邊的四個角落,是將四格的色彩值加總平均除以四,其他邊邊都是加總除以六,不過好像沒甚麼差別,倒是就沒有複雜化程式碼。
 
平滑化片段程式碼
 
平滑化過後的花朵
 
 
二、銳化
銳化是將九宮格內的Pixel,用下圖的比重去總和
 

跟平滑化相同意思,邊邊一樣是不能運算,
 
        彌補這個缺點,利用更大一圈的矩陣去放此圖片,然後去偵測九宮格的外圍四個方向是否有色彩值,若沒有色彩值就一樣略過,也就是跟平滑化一樣,只取有色彩值的部分作運算,比重也修改,不過也因為不想讓程式複雜化,所以程式並沒有寫上。
 
 
銳化片段程式碼

銳化過後的花朵
 
 
三、胡椒鹽
撒上胡椒鹽是利用在每個Pixel,隨機去決定是否要變化,
 
 假若設定胡椒鹽10%的話,即是產生一個隨機變數(0~100),假如數值再10以內及改變顏色,並且再隨機產生0~1的數值,若是0則黑色,否則白色。
 
 
胡椒鹽片段程式碼

胡椒花!?
     
 
 
四、中值濾波器
 
 
中值濾波器是將九宮格內的色彩值,
取出來之後排序,
之後拿取中間值
另外八格再同樣的作法
 
中值濾波器片段程式碼

這張是胡椒鹽過後使用中值濾波器
 

 
程式總功能

這次的作業,感覺還挺好玩的,總共新增了平滑化、銳化、中值濾波器、胡椒鹽這些功能。了解到網路上的影像處理程式(例 : 美圖修修),是怎麼寫出來的了。如果再加上新功能,使用元件的"點擊畫面"事件功能,點擊到的部分圓圈範圍內平滑化或中值濾波器,即可做到放上大頭照,點擊去除痘疤類似的功能。

沒有留言:

張貼留言