击中-击不中变换(非约束)—lhMorpHMTU
函数:lhMorpHMTU
说明:形态学非约束击中-击不中变换,当为二值图像时,结果与lhMorpHMTB相同。
参数:
src 输入图像,灰度或二值图像
dst 输出图像
sefg 前景结构元素
sebg 背景结构元素,如为空,则默认为前景结构元素sefg的取反
源码:
void lhMorpHMTU(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* temp = cvCreateImage(cvGetSize(src), 8, 1);
IplImage* mask = cvCreateImage(cvGetSize(src), 8, 1);
cvZero(mask);
cvErode( src, temp, sefg);
cvDilate(src, dst, sebg);
cvCmp(temp, dst, mask, CV_CMP_GT);
cvSub(temp, dst, dst, mask);
cvNot(mask, mask);
cvSet(dst, cvScalar(0), mask);
cvReleaseImage(&mask);
cvReleaseImage(&temp);
cvReleaseStructuringElement(&sebg);
}