歸一化塊濾波器:
opencv函式 blur 執行了歸一化塊平滑操作。
for(inti=
1;i<
max_kernel_length;i
=i+2
)}
我們輸入4個實參 (詳細的解釋請參考 reference):
高斯濾波器:
opencv函式 gaussianblur 執行高斯平滑 :
for(inti=
1;i<
max_kernel_length;i
=i+2
)}
我們輸入4個實參 (詳細的解釋請參考 reference):
中值濾波器:
opencv函式 medianblur 執行中值濾波操作:
for(inti=
1;i<
max_kernel_length;i
=i+2
)}
我們用了3個引數:
雙邊濾波器
opencv函式 bilateralfilter 執行雙邊濾波操作:
for(inti=
1;i<
max_kernel_length;i
=i+2
)}
我們使用了5個引數:
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace std;
using namespace cv;
/// 全域性變數
int delay_caption = 1500;
int delay_blur = 100;
int max_kernel_length = 31;
mat src; mat dst;
char window_name = "filter demo 1";
/// 函式申明
int display_caption(char* caption);
int display_dst(int delay);
/*** main 函式
*/int main(int argc, char** argv)
dst = src.clone();
if (display_dst(delay_caption) != 0)
/// 使用 均值平滑
if (display_caption("homogeneous blur") != 0)
for (int i = 1; i < max_kernel_length; i = i + 2) }
/// 使用高斯平滑
if (display_caption("gaussian blur") != 0)
for (int i = 1; i < max_kernel_length; i = i + 2) }
/// 使用中值平滑
if (display_caption("median blur") != 0)
for (int i = 1; i < max_kernel_length; i = i + 2) }
/// 使用雙邊平滑
if (display_caption("bilateral blur") != 0)
for (int i = 1; i < max_kernel_length; i = i + 2) }
/// 等待使用者輸入
display_caption("end: press a key!");
waitkey(0);
return 0;
}int display_caption(char* caption)
return 0;
}int display_dst(int delay)
return 0;
}
OpenCV 高斯濾波
一 前言 關於高斯濾波在我的前一篇文章 數字影象基本處理演算法 中有所談及那篇只是介紹了高斯濾波的應用,現在這一篇將著重簡介高斯濾波的原理和應用,一探個究竟!二 啥是高斯濾波?好吃麼?高斯濾波,說白了就是乙個函式來對輸入的訊號 其實這裡的訊號就是影象的畫素值 進行計算然後得出結果作為該訊號的值,只不...
OpenCV 濾波操作
濾波處理分為兩大類 線性濾波和非線性濾波。opencv裡有這些濾波的函式,使用起來非常方便,現在簡單介紹其使用方法。線性濾波 方框濾波 均值濾波 高斯濾波 方框濾波 均值濾波 均值濾波就是方框濾波的乙個特殊情況。均值濾波的缺點就是不能很好地保護細節,在影象去燥的同時也破壞了影象的而細節部分,從而使影...
OpenCV 高斯濾波實現
高斯濾波是一種線性平滑濾波,適用於消除高斯雜訊,廣泛應用於影象處理的減噪過程。通俗的講,高斯濾波就是對整幅影象進行加權平均的過程,每乙個畫素點的值,都由其本身和鄰域內的其他畫素值經過加權平均後得到。在影象處理中高斯濾波一般有兩種實現方式 一種是用離散化視窗滑窗卷積,另一種是通過傅利葉變換。最常見的就...