2010年12月24日 星期五

濾鏡處理 filtering


1.平滑濾波器

平滑線性空間濾波器的輸出(回應)是包含在濾波掩模鄰域內圖元的簡單平均值。因此,這些濾波器也稱為均值濾波器。平滑濾波器的概念非常直觀。它用濾波掩模確定的鄰域內圖元的平均灰度值去代替圖像每個圖元點的值,這種處理減小了圖像灰度的尖銳變化。由於典型的隨機雜訊由灰度級的尖銳變化組成,因此,常見的平滑處理應用就是減噪。然而,由於圖像邊緣也是由圖像灰度尖銳變化帶來的特性,所以均值濾波處理還是存在著不希望的邊緣模糊的負面效應。

bPtrResultImage[j*3] =

(byte)((bPtrOriginalImage0[j*3-1*3]+bPtrOriginalImage0[j*3]

+bPtrOriginalImage0[j*3+1*3]

+ bPtrOriginalImage1[j*3-1]+bPtrOriginalImage1[j*3]

+bPtrOriginalImage1[j*3+1*3]

+ bPtrOriginalImage2[j*3-1*3]+bPtrOriginalImage2[j*3]

+bPtrOriginalImage2[j*3+1*3])/9 + 0.5);

bPtrResultImage[j*3+1] =

(byte)((bPtrOriginalImage0[(j*3+1)-1*3]+bPtrOriginalImage0[j*3+1]

+bPtrOriginalImage0[(j*3+1)+1*3]

+ bPtrOriginalImage1[(j*3+1)-1*3]+bPtrOriginalImage1[j*3+1]

+bPtrOriginalImage1[(j*3+1)+1*3]

+ bPtrOriginalImage2[(j*3+1)-1*3]+bPtrOriginalImage2[j*3+1]

+bPtrOriginalImage2[(j*3+1)+1*3])/9+0.5);

bPtrResultImage[j*3+2] =

(byte)((bPtrOriginalImage0[(j*3+2)-1*3]+bPtrOriginalImage0[j*3+1]

+bPtrOriginalImage0[(j*3+1)+1*3]

+ bPtrOriginalImage1[(j*3+2)-1*3]+bPtrOriginalImage1[j*3+2]

+bPtrOriginalImage1[(j*3+2)+1*3]

+ bPtrOriginalImage2[(j*3+2)-1*3]+bPtrOriginalImage2[j*3+2]

+bPtrOriginalImage2[(j*3+2)+1*3])/9 + 0.5);

圖1 圖2


二種掩模更為重要一些。這個掩模也叫做加權平均,使用這一術語是指用不同的係數乘以圖片,這樣,從權值上看,一些圖片比另一些更為重要。對於圖2所示的3×3掩模,處於掩模中心位置的圖片比其他任何圖元的權值都要大,因此,在均值計算中給定的這一圖片顯得更為重要。而距離掩模中心較遠的其他圖片就顯得不太重要。由於對角項離中心比正交方向相鄰的圖更遠,所以。它的重要性要比與中心直接相鄰的四個圖片低。把中心點加強為最高,而隨著距中心點距離的增加減小系數值,是為了減小平滑處理中的模糊。我們也可以採取其他權重達到相同的目的。然而,圖2掩模中的所有係數的和應該為16,這很便於電腦的實現,因為它是2的整數次冪。在實踐中,由於這些掩模在一幅圖像中所占的區域很小,通常很難看出使用圖1的各種掩模或用其他類似手段平滑處理後的圖像之間的區別。

2.銳利化




















主要是把圖片做銳利化處理後使得圖片的細部變得更明顯,與平滑化相反,使圖片更為刻劃。
而主要的原理是把自己的色彩值乘"9",再減去周圍"八"個像素點色彩值,必且去判斷當值大於255時,以255表示,當值小於0時,以0表示,不然圖片會有問題

int image0= bPtrOriginalImage1[j*3]*9-(bPtrOriginalImage0[j*3-1*3]+bPtrOriginalImage0[j*3]+
bPtrOriginalImage0[j*3+1*3]+bPtrOriginalImage1[j*3-1*3]+bPtrOriginalImage1[j*3+1*3]
+ bPtrOriginalImage2[j*3-1*3]+bPtrOriginalImage2[j*3]+bPtrOriginalImage2[j*3+1*3]);
if(image0>255) bPtrResultImage[j*3]=255;
else if(image0<0)>
else bPtrResultImage[j*3] = (byte)image0;

3.胡椒鹽處理


主要是把圖片中,白色或是黑色的點點處理調,使圖片變的清晰。
程式主要是先做一個sort的函式,然後把自己和周圍八個點的色彩值放進去做排序,選擇中間值,因為白色或黑色的胡椒鹽其值為255,0,所以只要找到把中位數的值印出來,就可以把胡椒鹽給去掉ㄌ!!

Rsort[0]=bPtrOriginalImage0[j*3-1*3];
Rsort[1]=bPtrOriginalImage0[j*3];
Rsort[2]=bPtrOriginalImage0[j*3+1*3];
Rsort[3]=bPtrOriginalImage1[j*3-1*3];
Rsort[4]=bPtrOriginalImage1[j*3];
Rsort[5]=bPtrOriginalImage1[j*3+1*3];
Rsort[6]=bPtrOriginalImage2[j*3-1*3];
Rsort[7]=bPtrOriginalImage2[j*3];
Rsort[8]=bPtrOriginalImage2[j*3+1*3];

bPtrResultImage[j*3]=rrr(Rsort);

心得:這次的濾鏡差點真的不太了解,不過還好有同學的幫忙,不但知道每一個處理的原理,而且寫完才發現,原來每一個程式碼一點都不難,只是沒有想到或是理解,很謝謝同學的幫忙,除了能寫好著個程式外,真的有試著下去用原理寫程式,也對影像處理的原理,更佳的了解。

1 則留言:

  1. 請不要直接從網路上 copy 到報告中, 這是不被允許的行為。

    回覆刪除