平滑化:
平滑化的做法就是將這個像素點周圍像素相加後取總像素的平均,
如有9個像素點,中間為原本的像素點
┌ ┐
|左上 中上 右上|
|中左 中中 中右| / 9 = 模糊3倍
|左下 中下 右下|
└ ┘
不過如果全彩圖只做一次9宮格的判斷事無法跑出結果的,
因為一次判斷只能用來處理灰階的圖片,而不能用來處理彩色的圖片,
若要處理全彩的圖片,則必須考慮到RGB三色的個別9宮格的處理,
如圖:
就是使用全彩圖片只判斷一次的結果
因此程式方面必須
bPtrResultImage[j*3] =>B Color 進行平均
bPtrResultImage[j*3+1] =>G Color 進行平均
bPtrResultImage[j*3+2] =>R Color 進行平均
在完成後在將BGR放回新的圖片中,就完成了。
成果:
銳利化:
銳化基本上與平滑化差不多,但是銳化並不需要平均,
而是將中間的像素點給凸顯出來,
如:
┌ ┐
|左上*1 中上*1 右上*1|
|中左*1 中中*-8 中右*1|
|左下*1 中下*1 右下*1|
└ ┘
但是在算出後減掉原圖的Color,就相當於直接做
┌ ┐
|左上*-1 中上*-1 右上*-1|
|中左*-1 中中* 9 中右*-1|
|左下*-1 中下*-1 右下*-1|
└ ┘
下方圖片為*9的成果
但因為我發現*9的銳化太過凸顯,因此我讓圖做了一次*5的銳化進行測試,
而*5的銳化則是,只取
┌ ┐
| 中上 |
|中左 中中 中右| 這5個點
| 中下 |
└ ┘
因此作法為
┌ ┐
| 中上*-1 |
|中左*-1 中中*5 中右*-1|
| 中下*-1 |
└ ┘
成果:
銳化的程式基本上也與平滑相同,只是並不需要再做平均,而是將各值分別乘上數值後再加起來,但是為了防止溢位的發生,必須在做完後再做判,預防RGB大於255或小於0的情況。
中位數濾鏡處理, 去除胡椒鹽雜訊:
其實作法相當簡單,就是將9宮個的值進行排序,將排序完的結果取中位數,
而彩色圖的中位數濾鏡則必須加上RGB3值的各別排序。
成果:
心得:
這一次的作業,我認為相當的簡單,因為課本上有關於這三部分的解說,
而且老師的課程部落格上面也有老師去年寫過的程式範例,不過那雖然只能做灰階圖形,但是其實要在程式內考慮進RGB的判斷相當的簡單,但是由於胡椒鹽的去除方面,並沒有辦法完全的去除,因此在後來我一直在設法改善,企圖將雜訊完全去除,
雖然後來有改善許多,但是並未完全去除,因此還是不太滿意做出來的成果。
沒有留言:
張貼留言