各種方法的圖像平滑
opencv cvSmooth(中值濾波、高斯濾波)
Smooth各種方法的圖像平滑
void cvSmooth( const CvArr* src, CvArr* dst, int smoothtype=CV_GAUSSIAN, int param1=3, int param2=0, double param3=0 );
src 輸入圖像. dst 輸出圖像. smoothtype 平滑方法:
CV_BLUR_NO_SCALE (簡單不帶尺度變換的模糊) -對每個像素領域 param1×param2 求和。 如果鄰域大小是變化的,可以事先利用函數[url=file:///D:/程序/OpenCV/docs/ref/opencvref_cv.HTM#decl_cvIntegral]cvIntegral[/url]計算積分圖像。
CV_BLUR (simple blur) -對每個像素鄰域 param1×param2 求和並做尺度變換1/(param1•param2).
CV_GAUSSIAN (gaussian blur) -對圖像進行核大小為 param1×param2 的高斯卷積
CV_MEDIAN (median blur) -發現鄰域 param1×param1 的中值(ie鄰域是方的).
CV_BILATERAL (雙濾波) -應用雙向3x3濾波,彩色sigma=param1,空間sigma=param2.關於雙向濾波,可參考 https://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html
param1平滑操作的第一個參數.
param2平滑操作的第二個參數.
param2 為零對應簡單的尺度變換和高斯模糊。
param3對應高斯參數的Gaussian sigma (標準差).如果為零,
這由下面的核尺寸計算: sigma = (n/2 - 1)*0.3 + 0.8,其中
n=param1對應水平核, n=param2對應垂直核.對小的捲積核(3×3 to 7×7)使用標準sigma速度會快。
如果 param3 不為零,而 param1 和 param2 為零,則核大小有sigma計算(以保證足夠精確的操作).函數[
可使用上面任何一種方法平滑圖像。 每一種方法都有自己的特點以及局限。
沒有縮放的圖像平滑僅支持單通道圖像,並且支持8位、16位、32位和32位浮點格式。
簡單模糊和高斯模糊支持1- 或3-通道, 8-比特和32-比特浮點圖像。 這兩種方法可以(in-place)方式處理圖像。
中值和雙向濾波工作於1- 或3-通道, 8-位圖像,但是不能以in-place 方式處理圖像.
中值濾波
中值濾波法是一種非線性平滑技術,它將每一像素點的灰度值設置為該點某鄰域窗口內的所有像素點灰度值的中值.
實現方法:
1:通過從圖像中的某個採樣窗口取出奇數個數據進行排序
2:用排序後的中值取代要處理的數據即可
中值濾波法對消除椒鹽噪音非常有效,在光學測量條紋圖像的相位分析處理方法中有特殊作用,但在條紋中心分析方法中作用不大.
中值濾波在圖像處理中,常用於用來保護邊緣信息,是經典的平滑噪聲的方法
中值濾波原理
中值濾波是基於排序統計理論的一種能有效抑制噪聲的非線性信號處理技術,中值濾波的基本原理是把數字圖像或數字序列中一點的值用該點的一個拎域中各點值的中值代替,讓周圍的像素值接近的值,從而消除孤立的噪聲點。 方法是去某種結構的二維滑動模板,將板內像素按照像素值的大小進行排序,生成單調上升(或下降)的為二維數據序列。 二維中值濾波輸出為g(x,y)=med{f(xk,yl),(k,l∈W)} ,其中,f(x,y),g(x,y)分別為原始圖像和處理後圖像。 W為二維模板,通常為2*2,3*3區域,也可以是不同的的形狀,如線狀,圓形,十字形,圓環形等。
高斯濾波
高斯濾波實質上是一種信號的濾波器,其用途是信號的平滑處理,我們知道數字圖像用於後期應用,其噪聲是最大的問題,由於誤差會累計傳遞等原因,很多圖像處理教材會在很早的時候介紹Gauss濾波器,用於得到信噪比SNR較高的圖像(反應真實信號)。 於此相關的有Gauss-Lapplace變換,其實就是為了得到較好的圖像邊緣,先對圖像做Gauss平滑濾波,剔除噪聲,然後求二階導矢,用二階導的過零點確定邊緣,在計算時也是頻域乘積=>空域卷積。
濾波器就是建立的一個數學模型,通過這個模型來將圖像數據進行能量轉化,能量低的就排除掉,噪聲就是屬於低能量部分
其實編程運算的話就是一個模板運算,拿圖像的八連通區域來說,中間點的像素值就等於八連通區的像素值的均值,這樣達到平滑的效果(www.openbo.com)
若使用理想濾波器,會在圖像中產生振鈴現象。 採用高斯濾波器的話,系統函數是平滑的,避免了振鈴現象。
高斯濾波實質上是一種信號的濾波器,其用途是信號的平滑處理,我們知道數字圖像用於後期應用,其噪聲是最大的問題,由於誤差會累計傳遞等原因,很多圖像處理教材會在很早的時候介紹Gauss濾波器,用於得到信噪比SNR較高的圖像(反應真實信號)。 於此相關的有Gauss-Lapplace變換,其實就是為了得到較好的圖像邊緣,先對圖像做Gauss平滑濾波,剔除噪聲,然後求二階導矢,用二階導的過零點確定邊緣,在計算時也是頻域乘積=>空域卷積。
濾波器就是建立的一個數學模型,通過這個模型來將圖像數據進行能量轉化,能量低的就排除掉,噪聲就是屬於低能量部分
其實編程運算的話就是一個模板運算,拿圖像的八連通區域來說,中間點的像素值就等於八連通區的像素值的均值,這樣達到平滑的效果
bkboygnu
請先 登入 以發表留言。