Filter2D
对图像做卷积
void cvFilter2D( const CvArr* src, CvArr* dst,const CvMat* kernel,CvPoint anchor=cvPoint(-1,-1));
#define cvConvolve2D cvFilter2D
其中src为输入图像.dst为输出图像.kernel为卷积核, 单通道浮点矩阵. anchor核的锚点表示一个被滤波的点在核内的位置。锚点应该处于核内部。缺省值 (-1,-1) 表示锚点在核中心。
如果想要应用不同的核于不同的通道,先用 cvSplit 函数分解图像到单个色彩通道上,然后单独处理。
本文是在《OpenCV教程 基础篇》例题5-6的基础上进行了改进,可以通过滚动条来改变卷积核,进而利用cvFilter2D函数在同一输出窗口中显示不同的卷积滤波效果。
// Filtering for Image with variaty filtering kernel
//
// CV_PREWITT_3x3_V A gradient filter (vertical Prewitt operator).
// -1 0 1
// -1 0 1
// -1 0 1
// CV_PREWITT_3x3_H A gradient filter (horizontal Prewitt operator).
// 1 1 1
// 0 0 0
// -1 -1 -1