基本概念
前文C#描述-计算机视觉OpenCV(6):形态学描述了如何对图像的前后景特征形态进行检测与运算,本篇将分析基于形态的特征检测算法。MSER算法即最大稳定外部区域算法(Maximally Stable Extremal Regions),其基于分水岭的概念:对图像进行二值化,二值化阈值取[0, 255],这样二值化图像就经历一个从全黑到全白的过程(就像水位不断上升的俯瞰图)。在这个过程中,有些连通区域面积随阈值上升的变化很小,这种区域就叫MSER。。其核心思想在于通过不断改变图像的灰度阈值,寻找在不同阈值下保持稳定性的区域,这些区域往往对应着图像中的文本或其他重要信息。
我们还是以本图为例进行操作,在这个场景下,我们尝试把猫作为特征区域结果来测试。
操作实例
MSER 类的实例可以通过create 方法创建。我们在初始化时指定被检测区域的最小和最大尺寸,以便限制被检测特征的数量,调用方式如下::
MSER.Create(int delta, // 局部检测时使用的增量值,默认值5
int minArea, // 允许的最小面积,默认值60
int maxArea); // 允许的最大面积,默认值14400
然后我们通过DetectRegions来获得结果,结果会储存在一个点集容器和一个矩形容器:
MSER s=MSER.Create(5,5000,14400);//创建