OpenCV用MSER 算法提取特征区域

article/2025/9/13 6:10:47

        计算图像 MSER 的基础类是 cv::MSER,继承自 cv::Feature2D 类,cv::MSER 类的实例可以通过create 方法创建。我们在初始化时指定被检测区域的最小和最大尺寸,以便限制被检测特征的数量,调用方式如下:

cv::Ptr<cv::MSER> ptrMSER=
cv::MSER::create(5, // 局部检测时使用的增量值200, // 允许的最小面积20000); // 允许的最大面积

        现在可以通过调用 detectRegions 方法来获得 MSER,指定输入图像和一个相关的输出数据结构,代码如下所示:
 

// 点集的容器
std::vector<std::vector<cv::Point> > points;
// 矩形的容器
std::vector<cv::Rect> rects;
// 检测 MSER 特征
ptrMSER->detectRegions(image, points, rects);

        检测结果放在两个容器中。第一个是区域的容器,每个区域用组成它的像素点表示;第二个是矩形的容器,每个矩形包围一个区域。
 

        为了呈现结果,创建一个空白图像,在图像上用不同的颜色显示检测到的区域(颜色是随机选择的)。用以下代码实现:

int main()
{cv::Mat image = cv::imread("jzw.jpg", 1);cv::Ptr<cv::MSER> ptrMSER =cv::MSER::create(5, // 局部检测时使用的增量值200, // 允许的最小面积20000); // 允许的最大面积std::vector<std::vector<cv::Point> > points;std::vector<cv::Rect> rects;ptrMSER->detectRegions(image, points, rects);cv::Mat output(image.size(), CV_8UC3);output = cv::Scalar(255, 255, 255);cv::RNG rng;// 针对每个检测到的特征区域,在彩色区域显示 MSER// 反向排序,先显示较大的 MSERfor (std::vector<std::vector<cv::Point> >::reverse_iteratorit = points.rbegin();it != points.rend(); ++it) {// 生成随机颜色cv::Vec3b c(rng.uniform(0, 254),rng.uniform(0, 254), rng.uniform(0, 254));// 针对 MSER 集合中的每个点for (std::vector<cv::Point>::iterator itPts = it->begin();itPts != it->end(); ++itPts) {// 不重写 MSER 的像素if (output.at<cv::Vec3b>(*itPts)[0] == 255) {output.at<cv::Vec3b>(*itPts) = c;}}}cv::imshow("image", image);cv::imshow("output", output);waitKey(0);
}

 

最后结果为:

 


http://chatgpt.dhexx.cn/article/sQVufsNJ.shtml

相关文章

车牌定位之MSER — 文本检测

最大稳定极值区域&#xff08;MSER-Maximally Stable Extremal Regions&#xff09;可以用于图像的斑点区域检测。它是基于分水岭的概念。 SIFT和SURF算法高效实现了具有尺度和旋转不变性的特征检测&#xff0c;但这些特征不具有仿射不变性。区域检测针对各种不同形状的图像区域…

图像局部特征(十四)--MSER特征

原文: http://blog.csdn.net/zhaocj/article/details/40742191 最大稳定极值区域&#xff08;MSER-Maximally Stable Extremal Regions&#xff09;可以用于图像的斑点区域检测。该算法最早是由Matas等人于2002年提出&#xff0c;它是基于分水岭的概念。 MSER的基本原理是对…

【AI实战】手把手教你深度学习文字识别(文字检测篇:基于MSER, CTPN, SegLink, EAST等方法)

文字检测是文字识别过程中的一个非常重要的环节&#xff0c;文字检测的主要目标是将图片中的文字区域位置检测出来&#xff0c;以便于进行后面的文字识别&#xff0c;只有找到了文本所在区域&#xff0c;才能对其内容进行识别。 文字检测的场景主要分为两种&#xff0c;一种是…

MSRCR

带色彩恢复的多尺度视网膜增强算法&#xff08;MSRCR&#xff09;的原理、实现及应用。 Retinex这个词是由视网膜(Retina)和大脑皮层(Cortex) 两个词组合构成的。Retinex理论主要包含了两个方面的内容&#xff1a;物体的颜色是由物体对长波、 中波和短波光线的反射能力决定的&a…

mser场景文字检测及筛选

发现很多人都用mser,swt等进行场景文字的检测&#xff0c;最近也去实现了一下&#xff0c;虽然swt较新的算法&#xff0c;但实现过程中传统的mser算法反而更稳定&#xff0c;速度也会更快&#xff0c;可能是我还没有完全领会swt的精髓。ps:暂时只做水平及水平倾斜的文字 demo …

mser python篇

之前一直在matlab上用这个函数&#xff0c;现在转移到python上面使用 ———————————————————————————————————— 1、代码 I cv2.cvtColor(I, cv2.COLOR_BGR2GRAY); mser cv2.MSER_create() regions,boxes mser.detectRegions(I) for bo…

MSER — 自然场景文本检测

MSER是最大稳定极值区域&#xff1a;是对一幅灰度图像&#xff08;灰度值为0&#xff5e;255&#xff09;取阈值进行二值化处理&#xff0c;阈值从0到255依次递增。阈值的递增类似于分水岭算法中的水面的上升&#xff0c;随着水面的上升&#xff0c;有一些较矮的丘陵会被淹没&a…

文字检测与识别1-MSER

导语 文字识别在现实场景中的用途非常广泛&#xff0c;现在已经有很多公司将这项技术用于实际中。比如车牌识别&#xff0c;图片转换成文档&#xff0c;拍照搜题&#xff0c;拍照翻译等。这让很多人有了错觉&#xff0c;感觉文字识别的技术已经炉火纯青&#xff0c;可以广泛应…

MSER常见参数

MSER用于文本检测已经成熟了&#xff0c;现简单使用来识别车牌号。 目录 MSER参数最大最小区域固定 MSER参数 默认&#xff1a;int delta 5, int min_area 60, int max_area 14400, double max_variation 0.25, double min_diversity .2 * Full constructor for %MSER d…

MSER算法

最稳定极值区域介绍 如把灰度图看成高低起伏的地形图&#xff0c;其中灰度值看成海平面高度的话&#xff0c;MSER的作用就是在灰度图中找到符合条件的坑洼。条件为坑的最小高度&#xff0c;坑的大小&#xff0c;坑的倾斜程度&#xff0c;坑中如果已有小坑时大坑与小坑的变化率…

【MSER】基于MSER算法的交通标志分割仿真

1.软件版本 MATLAB2021a 2.本算法理论知识 [1]钱坤. 基于MSER和遗传优化SVM的交通标志识别的研究[D]. 大连理工大学. [2]王斌, 常发亮, 刘春生. 基于MSER和SVM的快速交通标志检测[J]. 光电子.激光, 2016. 3.部分源码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%…

MSER相关总结

最近做项目用到了MSER&#xff0c;特地在这做总结。 以前提到字符检测首先会想到Tesseract&#xff0c;但是tesseact对图像的二值化要求过高&#xff0c;比较适合于白底黑字的字符识别&#xff0c;对于复杂情况就无能为力了&#xff1b; 于是就想到用轮廓检测&#xff0c;这种…

最大稳定极值区域(MSER)检测

Lowe和Bay提出的SIFT和SURF算法高效实现了具有尺度和旋转不变性的特征检测&#xff0c;但这些特征不具有仿射不变性。 区域检测针对各种不同形状的图像区域&#xff0c;通过对区域的旋转和尺寸归一化&#xff0c;可以实现仿射不变性。 MSER&#xff08;Maximally Stable Extr…

MSER最稳定极值区域源码分析

最稳定极值区域介绍 如把灰度图看成高低起伏的地形图&#xff0c;其中灰度值看成海平面高度的话&#xff0c;MSER的作用就是在灰度图中找到符合条件的坑洼。条件为坑的最小高度&#xff0c;坑的大小&#xff0c;坑的倾斜程度&#xff0c;坑中如果已有小坑时大坑与小坑的变化率。…

OpenCVSharp入门教程 特征提取①——MSER区域特征提取Maximally Stable Extremal Regions

文章目录 一、前文二、特征提取流程三、界面布局四、功能实现4.1 打开图片4.2 特征提取—源码4.3 特征提取—参数讲解4.4 特征提取—Detect和DetectRegions 五、运行效果图六、发现并解决问题七、其他问题 一、前文 MSER Maximally Stable Extremal Regions 最大极值稳定区 业…

【OpenCV 例程 300篇】247. 特征检测之最大稳定极值区域(MSER)

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程 300篇】247. 特征检测之最大稳定极值区域&#xff08;MSER&#xff09; 1. 最大稳定极值区域&#xff08;MSER&#xff09; 最大稳定极值区域&#xff08;MSER-Maximally Stable Extremal Regions&#xf…

师傅带徒弟学JavaScript-关东升-专题视频课程

师傅带徒弟学JavaScript—430人已学习 课程介绍 本课程是学习Web前端的基础课程&#xff0c;是学习Web前端框架、JavaWeb开发、Python Web开发、PHP开发和.NET Web开发前置课程。 课程收益 掌握JavaScript 讲师介绍 关东升 更多讲师课程 一个在IT领域摸爬滚打20多年的老程…

师傅带徒弟学:Python Web之Flask框架-关东升-专题视频课程

师傅带徒弟学&#xff1a;Python Web之Flask框架—317人已学习 课程介绍 Python Web是Python语言一个重要的应用方面&#xff0c;Python Web有很多&#xff0c;其中Flask和Django框架是他们的佼佼者。 Flask是一个Python实现的Web开发微框架。 课程收益 掌握Flask框架 讲师…

关东升的iOS实战系列图书 《iOS实战:入门与提高卷(Swift版)》已经上市

&#xfeff;&#xfeff; 承蒙广大读者的厚爱我的 《iOS实战&#xff1a;入门与提高卷&#xff08;Swift版&#xff09;》京东上市了&#xff0c;欢迎广大读者提出宝贵意见。http://item.jd.com/11766718.html 欢迎关注关东升新浪微博tony_关东升。 关注智捷课堂微信公共平台&…

Sharding-JDBC(一)SpringBoot集成

目录 1.背景2.简介3.依赖与配置4.表结构&#xff08;1..3&#xff09;5.测试验证5.1 批量保存5.2 列表查询 6.源码地址 1.背景 随着业务数据量的增加&#xff0c;原来所有的数据都是在一个数据库上&#xff0c;网络IO及文件IO都集中在一个数据库上&#xff0c;因此CPU、内存、…