boxfilter 函数
boxfilter 函數(shù):
函數(shù)調(diào)用形式:
void boxFilter(InputArray src, OutputArray dst, int ddepth, Size ksize, Point anchor=Point(-1,-1), boolnormalize=true, int borderType=BORDER_DEFAULT )
函數(shù)參數(shù)詳解:
第一個參數(shù):InputArray src表示輸入圖像
第二個參數(shù):OutputArray dst表示輸出圖像
第三個參數(shù):int ddepth輸出圖像的深度
第四個參數(shù):Point anchor=Point(-1,-1)處理的像素點是卷積核的中心
第五個參數(shù):boolnormalize=true表示是不是進行歸一化
第六個參數(shù):int borderType=BORDER_DEFAULT圖像邊界的處理方式
對于第五個參數(shù):形式是這樣的:
The function smoothes an image using the kernel:
\texttt{K} = \alpha
?????11\hdotsfor61111111???111111?????where
\alpha = \fork{\frac{1}{\texttt{ksize.width*ksize.height}}}{when \texttt{normalize=true}}{1}{otherwise}
當進行歸一化后就是:blur函數(shù)
關(guān)于第三個參數(shù)圖像的深度:有這幾種格式:
當需要在不同深度的圖像之間轉(zhuǎn)換時,也可以用cvScale()這個函數(shù)。這個時候的轉(zhuǎn)換,中間有個截斷處理過程。比如IPL_DEPTH_64F到IPL_DEPTH_8U,就會把300轉(zhuǎn)換到255。下面轉(zhuǎn)一段別人總結(jié)的深度顯示范圍。
測試double型:0.0–1.0之間 IPL_DEPTH_64F
測試float型:0.0–1.0之間 IPL_DEPTH_32F
測試long型:0–65535之間 IPL_DEPTH_32S
測試short int型:-32768–32767之間 IPL_DEPTH_16S
測試unsigned short int型:0–65535之間 IPL_DEPTH_16U
測試char型:-128–127之間 IPL_DEPTH_8S
測試unsigned char型:0–255之間 IPL_DEPTH_8U
這個時候如果需要保存圖像,請記住要先轉(zhuǎn)換到IPL_DEPTH_8U的深度。
opencv代碼:
#include<highgui.h>#include<cv.h> using namespace std; using namespace cv;int main() {Mat img = imread("D:6.jpg");Mat dst;boxFilter(img, dst,IPL_DEPTH_8U, Size(3, 3), Point(-1, -1),true, BORDER_DEFAULT);imshow("shiyan", dst);waitKey(0);return 0; }總結(jié)
以上是生活随笔為你收集整理的boxfilter 函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: blur 简单滤波
- 下一篇: buildPyramid函数