2010年12月31日 星期五

HW03模糊化



胡椒鹽原圖



上圖為胡椒鹽圖片



上圖為原圖




上圖為銳利化後




上圖為模糊化後


心得:這次作業越寫越順,一開始先讀原圖,之後把原圖切割,3*3 = 新的一大格,新的一大格為3*3的顏色的平均.打起來還滿順的,但是原本我是用黑白的來打,所以一直顯示黑白害我有錯愕一下!之後有同學的幫助下,才知道j的地方要*3,我一直沒有*3,所以只跑黑白!銳利化比較簡單:)只要把分3*3分割圖,取以中間為主的上下左右4格的色彩值,個別*(-1),只有中間那塊*5後,把色彩值全部加起來就得到答案了!

重點程式碼:

(模糊化)
bPtrImageRow2[j*3] = (byte)((bPtrImageRow3[(j-1)*3]+bPtrImageRow3[j*3]+bPtrImageRow3[(j+1)*3]+ bPtrImageRow4[(j-1)*3]+bPtrImageRow4[j*3]+bPtrImageRow4[(j+1)*3]+ bPtrImageRow5[(j-1)*3]+bPtrImageRow5[j*3]+bPtrImageRow5[(j+1)*3])/9 + 0.5)

(銳利化)
x = (bPtrImageRow3[j*3]*(-1)+ bPtrImageRow4[(j-1)*3]*(-1)+bPtrImageRow4[j*3]*5+bPtrImageRow4[(j+1)*3]*(-1)+bPtrImageRow5[j*3]*(-1) + 0.5)
只是最後要判斷他是否有overflow!!



胡椒鹽:
做法其實很簡單,上禮拜跟同學研究,其實還是用那9個格子,找到影像在記憶體中每一行的起始位置後,取道他們的色彩值後,加以排序,在將排序後的取中間值,丟回我們原本的一大格中!
主要程式碼:
data[0] = bPtrImage3[j-1] ;
data[1] = bPtrImage3[j];
data[2] = bPtrImage3[j+1];
data[3] = bPtrImage4[j-1];
.....(沒打完怕抄襲@@)
以上是將3*3的個個色彩值丟入陣列好做排序!

bPtrImage2 = data[4];
最後在將排序後的值丟會原本的大格中!

1 則留言: