zoukankan      html  css  js  c++  java
  • OPENCV用户手册之图像处理部分(之三):形态学操作(中文翻译)

    2004年09月06日 10:14:00

    形态学操作

    HUNNISH 注:

    本翻译是直接根据 OpenCV Beta 4.0版本的用户手册翻译的,原文件是:<opencv_directory>/doc/ref/opencvref_cv.htm,可以从 SOURCEFORG 上面的 OpenCV 项目下载,也可以直接从 阿须数码 中下载:http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cv.htm

    翻译中肯定有不少错误,另外也有些术语和原文语义理解不透导致翻译不准确或者错误,也请有心人赐教。翻译这些英文参考手册的目的是想与国内OPENCV 的爱好者一起提高 OPENCV在计算机视觉、模式识别和图像处理方面的实际应用水平。


    CreateStructuringElementEx

    创建结构元素

    IplConvKernel* cvCreateStructuringElementEx( int cols, int rows, int anchor_x, int anchor_y,                                             int shape, int* values=NULL );
    
    cols
    结构元素的列数目
    rows
    结构元素的行数目
    anchor_x
    锚点的相对水平偏移量
    anchor_y
    锚点的相对垂直便宜量
    shape
    结构元素的形状,可以是下列值:
    • CV_SHAPE_RECT, 长方形元素;
    • CV_SHAPE_CROSS, 交错元素 a cross-shapedelement;
    • CV_SHAPE_ELLIPSE, 椭圆元素;
    • CV_SHAPE_CUSTOM, 用户自定义元素。这种情况下参数values 定义了 mask,即象素的那个邻域必须考虑。
    values
    指向结构元素的指针,它是一个平面数组,表示对元素矩阵逐行扫描。非零值的点表示该点属于该元素。如果点为NULL,那么所有值都被认为是非零,即元素是一个长方形。该参数仅仅当形状是CV_SHAPE_CUSTOM 时才予以考虑。

    函数 cv CreateStructuringElementEx分配和填充结构 IplConvKernel,它可作为形态操作中的结构元素。


    ReleaseStructuringElement

    删除结构元素

    void cvReleaseStructuringElement( IplConvKernel** element );
    
    element
    被删除的结构元素的指针

    函数 cvReleaseStructuringElement释放结构 IplConvKernel 。如果 *elementNULL, 则函数不作用。


    Erode

    使用结构元素腐蚀图像

    void cvErode( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 );
    
    src
    输入图像.
    dst
    输出图像.
    element
    用于腐蚀的结构元素。若为 NULL, 则使用 3×3长方形的结构元素
    iterations
    腐蚀的次数

    函数 cvErode对输入图像使用指定的结构元素进行腐蚀,该结构决定每个具有最小值象素点的邻域形状:

    dst=erode(src,element):  dst(x,y)=min((x',y') in element))src(x+x',y+y')
    

    函数支持(in-place)模式。腐蚀可以重复进行(iterations) 次.对彩色图像,每个彩色通道单独处理。


    Dilate

    使用结构元素膨胀图像

    void cvDilate( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 );
    
    src
    输入图像.
    dst
    输出图像.
    element
    用于膨胀的结构元素。若为 NULL, 则使用 3×3长方形的结构元素
    iterations
    膨胀的次数

    函数 cvErode对输入图像使用指定的结构元素进行腐蚀,该结构决定每个具有最小值象素点的邻域形状:

    函数 cvDilate对输入图像使用指定的结构元素进行膨胀,该结构决定每个具有最小值象素点的邻域形状:

    dst=dilate(src,element):  dst(x,y)=max((x',y') in element))src(x+x',y+y')
    

    函数支持(in-place)模式。膨胀可以重复进行(iterations) 次.对彩色图像,每个彩色通道单独处理。


    MorphologyEx

    高级形态变换

    void cvMorphologyEx( const CvArr* src, CvArr* dst, CvArr* temp,                     IplConvKernel* element, int operation, int iterations=1 );
    
    src
    输入图像.
    dst
    输出图像.
    temp
    临死图像,某些情况下需要
    element
    结构元素
    operation
    形态操作的类型:
    CV_MOP_OPEN - 开口
    CV_MOP_CLOSE - 闭口
    CV_MOP_GRADIENT - 形态梯度
    CV_MOP_TOPHAT - "顶帽"
    CV_MOP_BLACKHAT - "黑帽"
    iterations
    膨胀和腐蚀次数.

    函数 cvMorphologyEx在膨胀和腐蚀基本操作的基础上,完成一些高级的形态变换:

    开口:dst=open(src,element)=dilate(erode(src,element),element)闭口:dst=close(src,element)=erode(dilate(src,element),element)形态梯度dst=morph_grad(src,element)=dilate(src,element)-erode(src,element)"顶帽":dst=tophat(src,element)=src-open(src,element)"黑帽":dst=blackhat(src,element)=close(src,element)-src
    

    临时图像 temp在形态梯度以及对“顶帽”和“黑帽”操作时的 in-place模式下需要。



    Trackback:http://tb.blog.csdn.net/TrackBack.aspx?PostId=95532


  • 相关阅读:
    51nod1459 迷宫游戏
    51nod2006 飞行员配对(二分图最大匹配)
    51nod2006 飞行员配对(二分图最大匹配)
    GIT学习之路第四天 远程仓库
    GIT学习之路第四天 远程仓库
    搞懂树状数组
    搞懂树状数组
    线段树基础详解
    线段树基础详解
    折半枚举(双向搜索)poj27854 Values whose Sum is 0
  • 原文地址:https://www.cnblogs.com/feisky/p/1586563.html
Copyright © 2011-2022 走看看