opencv幾種常見濾波器使用方法_第1頁
opencv幾種常見濾波器使用方法_第2頁
opencv幾種常見濾波器使用方法_第3頁
opencv幾種常見濾波器使用方法_第4頁
opencv幾種常見濾波器使用方法_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、OpenCv中幾種常見的濾波器一. 濾波器的作用1. 問題:數(shù)字圖像信號的頻率分布?回答:信號或者圖像的能量大部分在中低頻段,少部分有用信號在高頻段被噪聲淹沒(噪聲都是高頻信號)。因此設(shè)計濾波器能降低高頻成分幅度就能減弱噪聲影響。2.問題:為什么要進(jìn)行圖像濾波?回答:1.適應(yīng)圖像處理要求,消除圖像數(shù)字化時所混入的噪聲。 2.提取對象的特征作為圖像識別的特征模式(沒遇到過!)3.問題:如何理解濾波器?回答:把濾波器想象成一個包含加權(quán)系數(shù)的窗口,當(dāng)使用濾波器平滑處理圖像時,相當(dāng)于把窗口放到圖像上,透過窗口看圖像。4.問題:濾波器實現(xiàn)的結(jié)果是怎么樣的?回答:對圖像做平滑或濾波后圖像變得更模糊。二 濾

2、波器分類2.1線性濾波器1. 低通濾波器:允許低頻率通過2. 高通濾波器:允許高頻率通過3. 帶通濾波器:允許一定范圍頻率通過4. 帶阻濾波器:阻止一定范圍頻率通過5. 全通濾波器:允許所有頻率通過,只是改變相位 Opencv中提供的線性濾波函數(shù)1.方框濾波:boxFilter函數(shù)函數(shù)原型:void boxFilter (InputArray src,OutputArray dst,int ddepth,Size ksize,Pointanchor=Point(-1,-1),boolnormalize=true,int borderType=BORDER_DEFAULT)參數(shù)說明: Input

3、Array,輸入圖像src。 OutputArray ,輸出圖像dst。 Int類型ddepth,輸出圖像深度,-1代表使用原圖src深度。 Size類型ksize,內(nèi)核大小,一般用Size(w,h),w為寬度,h為深度。 Point類型anchor,被平滑的點,表示取內(nèi)核中心,默認(rèn)值Point(-1,-1)。 Bool類型normalize,標(biāo)識符,表示內(nèi)核是否被歸一化。默認(rèn)值為true。 Int類型boderType,推斷圖像外部像素的某種邊界模式。默認(rèn)值BORDER_DEFAULT。2. 均值濾波:blur函數(shù)函數(shù)原型:void blur(InputArray src,OutputArr

4、ay dst,int ddepth,Size ksize,Pointanchor=Point(-1,-1), int borderType=BORDER_DEFAULT)參數(shù)說明:InputArray,輸入圖像src。 OutputArray ,輸出圖像dst。 Int類型ddepth,輸出圖像深度,-1代表使用原圖src深度。 Size類型ksize,內(nèi)核大小,一般用Size(w,h),w為寬度,h為深度。 Point類型anchor,被平滑的點,表示取內(nèi)核中心,默認(rèn)值Point(-1,-1)。 Int類型boderType,推斷圖像外部像素的某種邊界模式。默認(rèn)值BORDER_DEFAULT

5、。 3. 高斯濾波:GaussianBlur函數(shù)函數(shù)原型:void GaussianBlur(InputArray src,OutputArray dst, Size ksize,double sigmaX,double sigmaY=0, int borderType=BORDER_DEFAULT)參數(shù)說明:InputArray,輸入圖像src。 OutputArray ,輸出圖像dst. Size類型ksize,內(nèi)核大小,一般用Size(w,h),w為寬度,h為深度。 double類型的sigmaX,表示高斯核函數(shù)在X方向上的標(biāo)準(zhǔn)偏差。 Double類型的sigmaY,表示高斯核函數(shù)在Y方

6、向上的標(biāo)準(zhǔn)偏差, sigmaY有默認(rèn)值為0.如果sigmaX和sigmaY都為0,由內(nèi)核的寬高計算出來。 Int類型boderType,推斷圖像外部像素的某種邊界模式。默認(rèn)值BORDER_DEFAULT。4. 補(bǔ)充:boxblur函數(shù)中的參數(shù)normalize,當(dāng)normalize=true時為均值濾波。言外之意,均值濾波是方框濾波歸一化后的特殊情況。 線性濾波器的計算方法圖注:鄰域濾波(卷積):左邊圖像與中間圖像的卷積產(chǎn)生右邊圖像。目標(biāo)圖像中藍(lán)色標(biāo)記的像素是利用原圖像中紅色標(biāo)記的像素計算得到的。線性濾波處理的輸出像素值是輸入像素值的加權(quán)和 : 其中的加權(quán)和為 ,我們稱其為“核”,濾

7、波器的加權(quán)系數(shù),即濾波器的“濾波系數(shù)”。上面的式子可以簡單寫作: 其中f表示輸入像素值,h表示加權(quán)系數(shù)“核“,g表示輸出像素值。舉例說明:對待處理的當(dāng)前像素,選擇一個內(nèi)核大小,該內(nèi)核為其鄰近的若干個像素組成,用內(nèi)核的均值來替代原像素的值的方法。取出圖像中的幾個像素點,并標(biāo)注需要處理的像素點F(X,Y)1234F(X,Y)5 678圖注:18為(x,y)的鄰近像素設(shè)置內(nèi)核大小通過均值濾波器后其計算為:F(X,Y)= (f(x-1,y-1) + f(x,y-1)+ f(x+1,y-1) + f(x-1,y) + f(x

8、,y) + f(x+1,y) + f(x-1,y+1) + f(x,y+1) + f(x+1,y+1)/9設(shè)置內(nèi)核大小通過方框濾波器后其計算為:F(X,Y)= f(x-1,y-1) + f(x,y-1)+ f(x+1,y-1) + f(x-1,y) + f(x,y) + f(x+1,y) + f(x-1,y+1) + f(x,y+1) + f(x+1,y+1)通過高斯

9、濾波器利用公式:代入x,y 值可以算出F(X,Y)的值。2.2 非線性濾波器1.中值濾波:像素點 鄰域灰度值的中值代替該像素點的灰度值。2.雙邊濾波:基于空間分布的高斯濾波函數(shù),比高斯濾波多一個sigma-d的高斯方差。 Opencv中提供的非線性濾波函數(shù)1.中值濾波:medianBlur函數(shù)函數(shù)原型:void medianBlur(InputArray src,OutputArray dst,int ksize)參數(shù)說明:InputArray,輸入圖像src。 OutputArray ,輸出圖像dst. int類型ksize,孔徑的線性尺寸,這個參數(shù)必須是大于1的奇數(shù)2.雙邊濾波:bilat

10、eralFilter(InputArray src,OutputArray dst, int d, double sigmaColor,double sigmaSpace, int borderType=BORDER_DEFAULT)參數(shù)說明:InputArray,輸入圖像src。 OutputArray ,輸出圖像dst. Int類型的d,表示過濾過程每個像素鄰域的直徑 double類型的sigmaColor,表示顏色濾波器的sigma值 Double類型的sigmaSpace,表示坐標(biāo)空間的sigma值 Int類型boderType,推斷圖像外部像素的某種邊界模式。默認(rèn)值BORDER_DE

11、FAULT。)三 幾種濾波器的使用本示例在opencv3.0+VS2012運(yùn)行環(huán)境下測試,不管利用opencv或者VS什么版本其實程序都是一樣的。只不過在包含頭文件時注意位置就好了。#include<opencv2/opencv.hpp>using namespace cv;using namespace std;#define WINDOWS_NAME1 "【原圖】"#define WINDOWS_NAME2 "【方框濾波】"#define WINDOWS_NAME3 "【均值濾波】"#define WINDOWS_NA

12、ME4 "【高斯濾波】"#define WINDOWS_NAME5 "【中值濾波】"#define WINDOWS_NAME6 "【雙邊濾波】"int main()system("color 5E");/把dos框背景顏色改變,只是看看效果,默認(rèn)dos框背景為黑色。Mat srcImage=imread("D:ProgramFiles圖片Example4.jpg");/讀入原圖if (!srcImage.data)cout<<"讀取srcImage錯誤!"<

13、<endl;/用到了輸入輸出流,頭文件要加“using namespace std;”return false;/創(chuàng)建5個Mat矩陣用來存放濾波數(shù)據(jù),利用clone函數(shù)使其大小和原圖大小相同 Mat box_Image=srcImage.clone();Mat blur_Image=srcImage.clone();Mat gaussian_Image=srcImage.clone();Mat median_Image=srcImage.clone();Mat bilateral_Image=srcImage.clone();/=顯示原圖=namedWindow(WINDOWS_NAME

14、1,1);imshow(WINDOWS_NAME1,srcImage);/=方框濾波=namedWindow(WINDOWS_NAME2,1);boxFilter(srcImage,box_Image,-1,Size(3,3),Point(-1,-1),false,BORDER_DEFAULT);imshow(WINDOWS_NAME2,box_Image);/=均值濾波=namedWindow(WINDOWS_NAME3,1);blur(srcImage,blur_Image,Size(3,3),Point(-1,-1),BORDER_DEFAULT);imshow(WINDOWS_NAME3,blur_Image);/=高斯濾波=namedWindow(WINDOWS_NAME4,1);GaussianBlur(srcImage,gaussian_Image,Size(3,3),0,0,BORDER_DEFAULT);imshow(WINDOWS_NAME4,gaussian_Image);/=中值濾波=namedWindow(WINDOWS_NAME5,1);median

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論