计算图像 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);
}

最后结果为:

OpenCV用MSER 算法提取特征区域相关推荐

  1. 用 MSER 算法提取特征区域

    最大稳定外部区域(MSER)从图像中提取有意义的区域.创建这些区域时使用逐步提高水位的方法,关注的是在水淹过程中的某段时间内,保持相对稳定的盆地.可以发现,这些区域对应着图像中某些物体的特殊部分. 计 ...

  2. 利用MSER算法提取图像区域(车牌区域)的OpenCV代码~

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 我的博客中前面已经写了两种方法来实现车牌区域的提 ...

  3. OpenCV实战——使用MSER提取特征区域

    OpenCV实战--使用MSER提取特征区域 0. 前言 1. MSER 算法原理 2. 实现 MSER 算法 3. 完整代码 相关链接 0. 前言 在分水岭算法一节中,我们了解了如何通过创建分水岭将 ...

  4. OpenCV python GrabCut算法提取前景背景图片

    OpenCV python GrabCut算法提取前景背景图片 处理图片:[lena_color.jpg] 手动mask[mask.jpg] import numpy as np import cv2 ...

  5. Opencv的DPM算法提取图片目标

    使用Opencv的DPM算法进行检测行人,并提取存储 使用环境:win10+opencv3.4.0+opencv_contrib3.4.0+VS2017 环境配置方法: 参考该博客 https://w ...

  6. shingling算法——提取特征,m个hash函数做指纹计算,针对特征hash后变成m维向量,最后利用union-find算法计算相似性...

    shingling算法用于计算两个文档的相似度,例如,用于网页去重.维基百科对w-shingling的定义如下: In natural language processing a w-shinglin ...

  7. 应用PCA算法提取特征脸,重构人脸图像,并利用SVM算法进行人脸识别

    //--应用PCA进行特征提取,并重构人脸图像--//#include<highgui.h> #include<cv.h> #include<windows.h> ...

  8. opencv曝光算法_OpenCV特征点提取算法对比

    除了我们熟知的SIFT.SURF.ORB等特征点提取算法,OpenCV中还提供了十余种特征点提取算法.最近在整理以往的ppt和报告,看到其中一页ppt,发现已经忘得差不多了,就再写篇博客复习下好了,这 ...

  9. 特征点提取算法 - 01 - 特征的定义基础

    前言:特征提取(feature extraction)是计算机视觉和图像处理中的一个概念.它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征.特征提取的结果是把图像上的点分为不同的子 ...

最新文章

  1. [LeetCode]Convert Sorted Array to Binary Search Tree
  2. Wrong FS: hdfs://xxx/xxx expected: file:///
  3. 使用GeocodeService进行地理位置检索
  4. nginx-rtmp 之统计在线clients
  5. 数据挖掘算法_算法篇(01) 数据挖掘算法初探
  6. C# 运算符的优先级和关联性
  7. 人工神工机器人是什么_为什么企业要用电销机器人代理人工
  8. 使用Nginx反向代理来实现简单的负载均衡
  9. WPF:动态显示或隐藏Listview的某一列
  10. ios自定义控件,使UIScrollView自己处理输入时键盘遮挡控件
  11. 手动修改美化7zip图标 - 附替换文件
  12. python 实现死亡之ping
  13. 2021:Python的下载安装教程(很详细,初学者也能懂)
  14. 《计算机视觉与图像:八大热点公司以及九大应用场景》
  15. 2017年c语言试题,2017年计算机二级C语言试题
  16. 奇迹mu选区后就一直显示连接服务器,奇迹mu双开
  17. matebook14支持触摸屏吗_2020款的matebook14增加了多点触控屏是最大亮点
  18. 【基础】银行间市场金融设施
  19. 史上最强Tomcat8性能优化
  20. 亚利桑那州立大学计算机专业,美国大学亚利桑那州立大学计算机科学专业课程设置...

热门文章

  1. 关于Java中Switch支持的数据类型
  2. 硬盘录像机NVR、DVR或者带存储的摄像头通过GB28181协议接入LiveGBS可以播放设备的录像
  3. 告别流量内卷:这4个Instagram引流的方法让你亚马逊销量暴涨
  4. qt-wayland平台下复制粘贴原理
  5. electron-vue初始化项目到打包运行
  6. python将姓王的都改成老王_Python 实现将numpy中的nan和inf,nan替换成对应的均值
  7. TreeMap原理实现及常用方法
  8. SQLyog学习笔记01---安装及基本使用
  9. python程序语言设计教材_Python语言程序设计 - 中国高校教材图书网
  10. 【bzoj1617】[Usaco2008 Mar]River Crossing渡河问题 dp