学习opencv第五章 函数(1)

  • 平滑处理函数:

CVAPI(void) cvSmooth( const CvArr* src, CvArr* dst, int smoothtype CV_DEFAULT(CV_GAUSSIAN), int size1 CV_DEFAULT(3), int size2 CV_DEFAULT(0), double sigma1 CV_DEFAULT(0), double sigma2 CV_DEFAULT(0)) //

smoothtype值可为

CV_BLUR    //均值滤波  size1 * size2 

CV_BLUR_NO_SCALE   //求和 size1 * size2

CV_MEDIAN  //中值滤波 size1 * size2 

CV_GAUSSIAN   //高斯滤波  size1 * size2 .  sigma1, sigma2 表示水平方向和垂直方向 

CV_BILATERAL  //双边滤波(只对彩色图像 , 能较好的保留边缘).   size1 * size2 大小的核 , , sigma1表示空域sigma(高斯)   ,   ,sigma2表示强度sigma

//原理可参见:http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html



  • 图像形态学
  1. 膨胀和腐蚀:
CVAPI(void) cvErode( const CvArr* src, CvArr* dst, IplConvKernel* element CV_DEFAULT(NULL), int iterations CV_DEFAULT(1) )// 腐蚀.element为核默认为3*3,iterations为迭代次数

CVAPI(void) cvDilate( const CvArr* src, CvArr* dst, IplConvKernel* element CV_DEFAULT(NULL), int iterations CV_DEFAULT(1) ) //膨胀.

核的自定义

CVAPI(IplConvKernel*) cvCreateStructuringElementEx( int cols, int rows, int anchor_x, int anchor_y, int shape, int* values CV_DEFAULT(NULL) ) //核的大小cols * rows ,核的参考点为(anchor_x ,anchor_y) , shape为形状, values 指针为指向填充核的数据区(当且仅当shape为CV_SHAPE_CUSTOM时起作用 ,若values为NULL, 则填充的核全为非0值

shape参数为:

    CV_SHAPE_RECT      //矩形
    CV_SHAPE_CROSS   //十字形
    CV_SHAPE_ELLIPSE //内接椭圆,(内部填充为1)
    CV_SHAPE_CUSTOM //自定义型,此时val必须为有效值,不能为NULL 

int *values只在CV_SHAPE_CUSTOM时起作用

CVAPI(void) cvReleaseStructuringElement( IplConvKernel** element ) //释放


  • 更通用的形态学处理(开运算,闭运算,
CVAPI(void) cvMorphologyEx( const CvArr* src, CvArr* dst, CvArr* temp, IplConvKernel* element, int operation, int iterations CV_DEFAULT(1) )//element为核,operator为操作方法,iterators为迭代次数 ,term不知道

operator可为:

CV_MOP_OPEN

CV_MOP_CLOSE

CV_MOP_GRADIENT

CV_MOP_TOPHAT

CV_MOP_BLACKHAT






你可能感兴趣的:(null,DST)