SDL中文论坛

标题: 理解cv::MSER [打印本页]

作者: ancientcc    时间: 2017-10-20 16:07
标题: 理解cv::MSER
本帖最后由 ancientcc 于 2017-10-22 19:18 编辑

最大稳定极值区域(Maximally Stable Extremal Regions)是一种类似分水岭图像的分割与匹配算法。它具有SIFT SURF及 ORB等特征不具备的仿射不变性,近年来广泛应用于图像分割与匹配领域。

详细算法原理介绍可参见链接:http://blog.csdn.net/zhaocj/article/details/40742191

使用cv::MSER就两个步骤,一是创建创建MSER对象,二是MSER检测。

一:创建MSER对象
  1. cv::Ptr<cv::MSER> mesr1 = cv::MSER::create(2, 10, 5000, 0.5, 0.3);  
  2. //如果想要了解各参数的含义,首先需要通过以上链接了解算法原理。2表示灰度值的变化量,10和5000表示检测到的组块面积的范围,0.5为最大的变化率,0.3为稳定区域的最小变换量  
复制代码


二:MSER检测
  1. std::vector<std::vector<cv::Point> > regContours;  
  2. std::vector<cv::Rect> bboxes;  
  3. mesr1->detectRegions(gray, regContours, bboxes); //gray为处理的图像,为单通道灰度图
复制代码

如何直观理解detectRegions产生的输出结果regContours、bboxes1?以看以下两张图。
(, 下载次数: 2082)    (, 下载次数: 2073)
左侧是输入的灰度图,即detectRegions的输入参数gray。右侧是在灰度图的基础上叠加regContours中的两个单元(红色),和bboxes中的所有单元(白色)。以下是几个结论。





欢迎光临 SDL中文论坛 (http://www.libsdl.cn/bbs/) Powered by Discuz! X3.3