先介紹幾個最基本的核濾波器相關的類
2D映像濾波器基礎類BaseFilter:dst(x,y) = F(src(x,y), src(x+1,y)... src(x+wdith-1,y), src(y+1,x)... src(x+width-1, y+height-1) ); 相關的調用函數為getLinearFilter、getMorphologyFilter
單行核濾波器基礎類BaseRowFilter:dst(x,y) = F(src(x,y), src(x+1,y),...src(x+width-1,y));相關的調用函數為getLinearRowFilter、getMorphologyRowFilter
單列核濾波器基礎類BaseColumnFilter:dst(x,y) = F(src(x,y), src(x,y+1),...src(x,y+width-1));相關的調用函數為getColumnSumFilter、getLinearColumnFilter、getMorphologyColumnFilter
類FilterEngine:該類可以應用在對映像的任意濾波操作當中,在OpenCV濾波器函數中扮演著很重要的角色,相關的函數有createBoxFitler、createDerivFitlter、createGaussianFilter、createLinearFilter、createMorphologyFilter、createSeparableLinearFilter
基於這些類有一些基本的濾波器bilateralFilter、blur、boxFilter
還有一些形態學操作如:dilate、erode、morphologyEx
還有基於核和映像卷積的濾波器filter2D
還有一些典型的濾波器如GaussianBlur、medianBlur、Laplacian、pyrMeanShiftFiltering、sepFilter2D
還有Sobel、Scharr運算子
其他一些函數有borderInterpolate、buildPyramid、copyMakeBorder、createBoxFilter、createDirivFilter、createGaussianFliter、createLinearFilter、createMorphologyFilter、createSeparableLinearFilter、getDerivKernels、getGaussianKernel、getKernelType、getStructuringElement、pyrDown、pyrUp
還老版本的濾波器cvSmooth
這裡介紹一下我使用Laplacian濾波的心得,這個函數的第三個參數為輸出的映像的深度,注意經過拉普拉斯運算元處理後得到的值是有正有負的,所以輸出映像的深度最好為輸入映像深度的2倍,才能有效防止資料溢出,如必須要使用8位的資料,可以再使用函數convertScaleAbs處理。而且要注意使用的拉普拉斯運算元掩膜的中心係數為負。