一、概述
计算图像MSER的基础类是cv::MSER。它是一个抽象接口,继承自cv::Feature2D类。事实上,OpenCV中的所有特征检测类都是从这个类继承的。cv::MSER类的实例可以通过create方法创建。我们在初始化时指定被检测区域的最小和最大尺寸,以便限制被检测特征的数量。
OpenCvSharp.MSER mSER = OpenCvSharp.MSER.Create(5, 1000, 1440);
Mat mat = new Mat("G:\\2.bmp");
OpenCvSharp.Point[][] points;
Rect[] out1;
mSER.DetectRegions(mat, out points, out out1);
for (int i = 0; i < out1.Length; i++)
Cv2.Rectangle(mat, out1[i], new Scalar(0, 0, 255));
Cv2.ImShow("mat", mat);
MSER的原理与分水岭算法相同,即高度为0~255,逐渐淹没图像。在图像处理技术中,通常把高于某个阈值的像素集合称为高度集。随着水位的升高,颜色较黑并且边界陡峭的区域会形成盆地,并且在一段时间内有相对稳定的形状(用水位表示颜色,水位高低代表了像素值的强度)。这些稳定的盆地就是MSER。
检测它们