学习opencv(4+)——图像形态学

这部分涉及到的函数有3个,方法却又7种。先说方法吧,基本的方法是腐蚀和膨胀,可以用cvErode()做腐蚀,用cvDilate()做膨胀。后面的五种方法是以腐蚀和膨胀作为基础的,一般是两者均使用,只是先用哪个,后用哪个而已。

前面一篇记录了腐蚀和膨胀,这里不再赘述了。

后面五种方法都用函数cvMorphologyEx()来做。

void cvMorphologyEx(const CvArr * src, CvArr* dst, CvArr* temp, IplConvKernel* element, int operation, int iteration=1);

temp是暂存数组,用于中间暂存图像;

operation就是操作方法,即选择五种方法:CV_MOP_OPEN 开运算, CV_MOP_CLOSE 闭运算, CV_MOP_GRADIENT梯度运算, CV_MOP_TOPHAT礼帽, CV_MOP_BLACKHAT黑帽

开运算是先腐蚀后膨胀,可用来统计二值图像中的区域数;

闭运算时先膨胀后腐蚀,可用于去除噪声引起的区域;

梯度运算:dilate(src)-erode(src); 可得粗线条轮廓;

礼帽:src-open(src);可得细线条轮廓

黑帽:close(src)-src;  可得细线条轮廓。

你可能感兴趣的:(学习,opencv)