opencv學習筆記(四) 濾波操作

2021-08-20 05:11:57 字數 1829 閱讀 4412

模糊

void boxfilter(

inputarray src, //輸入影象

outputarray dst, //輸出影象

int ddepth, //影象深度,-1指原圖深度

size ksize, //卷積核大小 如size(3,3)

point anchor=point(-1,-1), //瞄點(被平滑的那個點)

boolnormalize=true, //核心是否進行歸一化

int bordertype=border_default //邊界模式,一般不管

)

影象去噪,同時破壞了影象的細節部分

void blur(

inputarray src, //輸入影象

outputarraydst, //輸出影象

size ksize, //卷積核

point anchor=point(-1,-1), //瞄點

int bordertype=border_default //邊界型別

)

消除高斯雜訊,減噪

void gaussianblur(

inputarray src, //輸入影象

outputarray dst, //輸出影象

size ksize, //卷積核大小

double sigmax, //高斯核函式在x方向的的標準偏差 (建議給值)

double sigmay=0, //高斯核函式在y方向的的標準偏差 (建議給值)

intbordertype=border_default //邊界型別

)

boxfilter(img, outbox, -1,size(5, 5));

blur(img, outblur, size(7, 7));

gaussianblur( img, outgaussian, size( 5, 5 ), 0, 0 );

去除脈衝雜訊、椒鹽雜訊的同時能保留影象邊緣細節 

void medianblur(

inputarray src, //輸入

outputarray dst, //輸出

int ksize //核大小

)

保持邊緣、降噪平滑

void bilateralfilter(

inputarray src, //輸入

outputarray dst, //輸出

int d, //每個畫素鄰域直徑

double sigmacolor, //顏色空間濾波器的sigma值。這個引數的值越大,就表明該畫素鄰域內有更寬廣的顏色會被混合到一起,產生較大的半相等顏色區域

double sigmaspace, //space座標空間中濾波器的sigma值,座標空間的標註方差。他的數值越大,意味著越遠的畫素會相互影響,從而使更大的區域足夠相似的顏色獲取相同的顏色。當d>0,d指定了鄰域大小且與sigmaspace無關。否則,d正比於sigmaspace。

int bordertype=border_default //邊界模式

)

medianblur( img, outmedian, 7);

bilateralfilter( img, outbilateral, 25, 25*2, 25/2 );

OpenCV 濾波操作

濾波處理分為兩大類 線性濾波和非線性濾波。opencv裡有這些濾波的函式,使用起來非常方便,現在簡單介紹其使用方法。線性濾波 方框濾波 均值濾波 高斯濾波 方框濾波 均值濾波 均值濾波就是方框濾波的乙個特殊情況。均值濾波的缺點就是不能很好地保護細節,在影象去燥的同時也破壞了影象的而細節部分,從而使影...

OpenCV 學習筆記(四)

今天學習了直方圖均衡化 histogram equalization 的方法,用於增強影象的對比度,就是把灰度直方圖中在某個比較集中的灰度區間上的畫素點更加均衡地重新分配到全部灰度區間上的方法。實質上就是建立乙個對映,乙個單調的畫素亮度變換q t p 將輸入直方圖h p 轉換為輸出直方圖g q 具體...

OpenCV學習筆記 四

離散傅利葉變換原理 把一張分解成正弦和余弦兩個部分,空間域轉換到頻域 傅利葉變換的理論就是任意函式都可以表示成無數個正弦和余弦函式的和的部分。空間域是實數,頻域分解後是複數,因此變換後有實數影象,虛數影象 幅度影象,虛數影象 逆傅利葉變化的時候必須需要幅度影象和虛數影象 在頻域中,高頻代表影象細節,...