击中-击不中变换(二值)—lhMorpHMTB

击中-击不中变换 (二值)

 击中-击不中变换(二值)—lhMorpHMTB - 海水和火焰 - 形态学与OpenCV击中-击不中变换(二值)—lhMorpHMTB - 海水和火焰 - 形态学与OpenCV

所采用的9*1 自定义结构为:
击中-击不中变换(二值)—lhMorpHMTB - 海水和火焰 - 形态学与OpenCV
 

 

函数:lhMorpHMTB

说明:形态学二值击中-击不中变换

参数:

src 输入图像,二值图像

dst 输出图像

sefg 前景结构元素

sebg 背景结构元素,如为空,则默认为前景结构元素sefg的取反

源码:

void lhMorpHMTB(const IplImage* src, IplImage* dst, IplConvKernel* sefg, IplConvKernel* sebg =NULL)

{

       assert(src != NULL && dst != NULL && src != dst && sefg!= NULL && sefg!=sebg);

       if (sebg == NULL)

              sebg = lhStructuringElementNot(sefg);

       IplImage*  temp1 = cvCreateImage(cvGetSize(src), 8, 1);

       IplImage*  temp2 = cvCreateImage(cvGetSize(src), 8, 1);

       cvErode( src, temp1, sefg);

       cvNot(src, temp2);

       cvErode( temp2, temp2, sebg);

       cvAnd(temp1, temp2, dst);

       cvReleaseImage(&temp1);

       cvReleaseImage(&temp2);

       cvReleaseStructuringElement(&sebg);

}

posted on 2011-12-21 22:13  carekee  阅读(335)  评论(0编辑  收藏  举报