用形态学运算变换图像(五)用MSER算法提取特征区域

本文介绍了如何使用MSER(最大稳定外部区域)算法提取图像特征区域。通过OpenCV库的cv::MSER类创建检测器,设置参数并调用detectRegions方法获取MSER。检测结果包括区域点集和矩形容器,可以进一步在图像上绘制以可视化。应用时,可以根据区域比例或其他条件进行过滤和显示。
摘要由CSDN通过智能技术生成

(五)用MSER算法提取特征区域
分水岭算法,通过逐步水淹创建分水岭,把图像分割成多个区域;MSER(最大稳定外部区域)同样通过提高水位的方法,关注水淹过程中的某段时间内,保持相对稳定的盆地,可发现这些区域对应图像中某些问题的特殊部分。
5.1 实现
计算图像MSER的基础类是cv::MSER,它是一个抽象接口,继承自cv::Feature2D类。OpenCV中的所有特征检测类都是从这个类继承的,cv::MSER类的实例可以通过create方法创建。在初始化时指定被检测区域的最小和最大尺寸,以便限制被检测特征的数量,调用方式如下:
//基本的MSER检测器cv::Ptrcv::MSERptrMSER=cv::MSER::create(5,200,2000);
参数:局部检测时使用的增量值、允许的最小面积、允许的最大面积
现在可以通过调用detectRegions方法来获得MSER,指定输入图像和一个相关的输出数据结构,代码如下:
//点集的容器
std::vector<std::vectorcv::Point> points;
//矩形的容器 std::vectorcv::Rect rects;
//检测MSER特性
ptrMSER->detectRegions(image,points,rects);
检测结果放在两个容器中。第一个是区域容器,每个区域用组成它的像素点表示;第二个是矩形容器,每个矩形包围一个区域。为了呈现结果,创建一个空白图像,在图像上用不同的颜色显示检测到的区域(颜色是随机选择的)。实现代码如下:

       //创建白色图像
       cv::Mat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值