MSER常见参数

article/2025/9/13 1:36:12

MSER用于文本检测已经成熟了,现简单使用来识别车牌号。

目录

  • MSER参数
  • 最大最小区域固定

MSER参数

默认:int delta = 5, int min_area = 60, int max_area = 14400, double max_variation = 0.25, double min_diversity = .2

     * Full constructor for %MSER detector**     @param delta it compares \((size_{i}-size_{i-delta})/size_{i-delta}\)*     @param min_area prune the area which smaller than minArea*     @param max_area prune the area which bigger than maxArea*     @param max_variation prune the area have similar size to its children*     @param min_diversity for color image, trace back to cut off mser with diversity less than min_diversity* @return automatically generated*/public static MSER create(int delta, int min_area, int max_area, double max_variation, double min_diversity) {return MSER.__fromPtr__(create_4(delta, min_area, max_area, max_variation, min_diversity));}
  • delta:
    它表示一个区域需要多少个灰度等级才能成为MSER区域。
    d e l t a 用 来 计 算 : q ( i ) = ( ( s i z e i − s i z e i − d e l t a ) / s i z e i − d e l t a delta用来计算:q(i)=((size_{i}-size_{i-delta})/size_{i-delta} deltaq(i)=((sizeisizeidelta)/sizeidelta
    当q(i)局部最小时,认为是MSER区域。
    固然,delta越大,得到的区域越少。
  • min,max_area
    MSER区域 的像素数 在 【min,max】区间内才考虑。否则直接prune
  • max_variation
    MSER区域变化率>max_variation,不考虑.
    即 即使 q(i)局部最小,但q(i)>maxVariation,也不考虑。
    故max_variation,越小,得到的区域越少。
  • min_diversity
    此参数用于解决两个十分相似的MSER区域。
    两个嵌套的MSER区域的diversity=父-子 / 子,小于指定参数,去掉子MSER区域。
    此参数越大,得到的区域越少

最大最小区域固定

首先生成MSER区域,然后按照矩形大小 从大到小排序,去掉重复的矩形,保留最小的矩形。

    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);//定义mser的参数MSER mser = MSER.create(5,350,1200);Mat img= Imgcodecs.imread("D:\\PlateDemo\\src\\main\\resources\\14.jpg");//对读取的图片进行灰度化Mat gray=new Mat();Imgproc.cvtColor(img,gray,Imgproc.COLOR_RGB2GRAY);ArrayList<MatOfPoint> matOfPoints = new ArrayList<>();MatOfRect matOfRect = new MatOfRect();//mser检测mser.detectRegions(gray,matOfPoints,matOfRect);//对所有mser区域矩形按照面积从大到小排序,List<Rect> rects = matOfRect.toList();Collections.sort(rects, new Comparator<Rect>() {@Overridepublic int compare(Rect o1, Rect o2) {if(o1.area()>=o2.area()) return -1;return 1;}});ArrayList<Rect> ansRect = new ArrayList<>();for(int i=0;i<rects.size();i++){int height=rects.get(i).height;int width=rects.get(i).width;double a=height/width;if(a>=1&&a<=8) {//车牌字符 90/45int flag=1;Imgproc.rectangle(img,rects.get(i).tl(),rects.get(i).br(),new Scalar(0,0,255));//如果包含关系,去掉面积较大者for(int j=i+1;j<rects.size();j++){Point point = new Point(rects.get(j).x + rects.get(j).width / 2, rects.get(j).y + rects.get(j).height / 2);if(rects.get(i).contains(point)) {flag=0;break;}}if(flag==1) ansRect.add(rects.get(i));}}Imgcodecs.imwrite("D:\\PlateDemo\\src\\main\\resources\\allRect.jpg",img);img= Imgcodecs.imread("D:\\PlateDemo\\src\\main\\resources\\14.jpg");for(int i=0;i<ansRect.size();i++) Imgproc.rectangle(img,ansRect.get(i).tl(),ansRect.get(i).br(),new Scalar(0,0,255));Imgcodecs.imwrite("D:\\PlateDemo\\src\\main\\resources\\NoRepeat.jpg",img);

请添加图片描述
请添加图片描述
参考:https://www.cnblogs.com/shangd/p/6164916.html


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

相关文章

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、内存、…

第一篇【Python】基础-关东升-专题视频课程

第一篇【Python】基础—833人已学习 课程介绍 本书是智捷课堂开发的立体化图书中的一本&#xff0c;所谓“立体化图书”就是图书包含&#xff1a;书籍、视频、课件和服务等内容。 其中第一篇包括8章内容&#xff0c;系统介绍了Python语言的基础知识。内容包括Python语言历史…

shardingsphere-jdbc 整合 springboot

shardingsphere官网地址 https://shardingsphere.apache.org/document/5.2.0/cn/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/sharding/ 当前我们演示的是水平分表 1、基础环境配置以及依赖管理 1.1 创建数据库表结构 CREATE TABLE address_0 (id bigint(…

如果张东升是个程序员

张东升是一家互联网公司的程序员&#xff0c;一直以来都勤勤恳恳老实工作。 可最近一段时间&#xff0c;行业不景气&#xff0c;老板不但下令开启了996的工作模式&#xff0c;更要命的是频频更改需求&#xff0c;弄得大家是敢怒不敢言。 时间一久&#xff0c;很多员工开始消极…

专访关东升:松耦合分层架构设计

关东升,国内知名iOS技术作家,iOS技术顾问,高级培训讲师,移动开发专家。拥有16年软件开发经验、8年培训行业经验。精通iOS、Android和 Windows Phone 7及Html5等移动开发技术。在App Store发布多款游戏和应用软件,擅长移动平台的应用和游戏类项目开发。目前主要从事iOS应用…

Java从小白到大牛第3篇 【进阶篇】-关东升-专题视频课程

Java从小白到大牛第3篇 【进阶篇】—4371人已学习 课程介绍 本视频是智捷课堂推出的一套“Java语言学习立体教程”的视频第三部分&#xff0c;读者以及观看群是初级小白&#xff0c;通过本视频的学习能够成为Java大牛。本主要内容包括&#xff1a;异常处理、集合、泛型、文…

Python项目实战:数据可视化与股票数据分析-关东升-专题视频课程

Python项目实战&#xff1a;数据可视化与股票数据分析—333人已学习 课程介绍 本视频内容包括使用Matplotlib绘制图表、MySQL数据库、Python访问数据库和Lambda表达式。 目录&#xff1a; 23.1 使用Matplotlib绘制图表 23.1.1 安装Matplotlib 23.1.2 图表基本构成要素 23.1…

【ShardingSphere技术专题】「ShardingJDBC实战阶段」SpringBoot之整合ShardingJDBC实现分库分表(JavaConfig方式)

前提介绍 ShardingSphere介绍 ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈&#xff0c;它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar&#xff08;计划中&#xff09;这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据…

关东升给的ios学习路线图(可以借鉴)

来源&#xff1a; http://www.zhijieketang.com/classroom/3/introduction 首页 课程 免费课程 会员 关于我们 登录 注册 首页 iOS课程 iOS会员-iOS开发学习路线图 iOS会员-iOS开发学习路线图 扫二维码继续学习 (0评价) 价格&#xff1a; 1500 金币 学员(17) 课程(37) …

关东升的《从零开始学Swift》3月9日已经上架

大家一直期盼的《从零开始学Swift》于3月9日已经上架&#xff0c;它是关东升老师历时8个月的呕心沥血所编著&#xff0c;全书600多页&#xff0c;此本书基于Swift 2.x&#xff0c;通过大量案例全面介绍苹果平台的应用开发。全书共分5 部分&#xff0c;包括Swift语法篇、Cocoa T…