OpenCV用MSER 算法提取特征区域
计算图像 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 算法提取特征区域相关推荐
- 用 MSER 算法提取特征区域
最大稳定外部区域(MSER)从图像中提取有意义的区域.创建这些区域时使用逐步提高水位的方法,关注的是在水淹过程中的某段时间内,保持相对稳定的盆地.可以发现,这些区域对应着图像中某些物体的特殊部分. 计 ...
- 利用MSER算法提取图像区域(车牌区域)的OpenCV代码~
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 我的博客中前面已经写了两种方法来实现车牌区域的提 ...
- OpenCV实战——使用MSER提取特征区域
OpenCV实战--使用MSER提取特征区域 0. 前言 1. MSER 算法原理 2. 实现 MSER 算法 3. 完整代码 相关链接 0. 前言 在分水岭算法一节中,我们了解了如何通过创建分水岭将 ...
- OpenCV python GrabCut算法提取前景背景图片
OpenCV python GrabCut算法提取前景背景图片 处理图片:[lena_color.jpg] 手动mask[mask.jpg] import numpy as np import cv2 ...
- Opencv的DPM算法提取图片目标
使用Opencv的DPM算法进行检测行人,并提取存储 使用环境:win10+opencv3.4.0+opencv_contrib3.4.0+VS2017 环境配置方法: 参考该博客 https://w ...
- shingling算法——提取特征,m个hash函数做指纹计算,针对特征hash后变成m维向量,最后利用union-find算法计算相似性...
shingling算法用于计算两个文档的相似度,例如,用于网页去重.维基百科对w-shingling的定义如下: In natural language processing a w-shinglin ...
- 应用PCA算法提取特征脸,重构人脸图像,并利用SVM算法进行人脸识别
//--应用PCA进行特征提取,并重构人脸图像--//#include<highgui.h> #include<cv.h> #include<windows.h> ...
- opencv曝光算法_OpenCV特征点提取算法对比
除了我们熟知的SIFT.SURF.ORB等特征点提取算法,OpenCV中还提供了十余种特征点提取算法.最近在整理以往的ppt和报告,看到其中一页ppt,发现已经忘得差不多了,就再写篇博客复习下好了,这 ...
- 特征点提取算法 - 01 - 特征的定义基础
前言:特征提取(feature extraction)是计算机视觉和图像处理中的一个概念.它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征.特征提取的结果是把图像上的点分为不同的子 ...
最新文章
- [LeetCode]Convert Sorted Array to Binary Search Tree
- Wrong FS: hdfs://xxx/xxx expected: file:///
- 使用GeocodeService进行地理位置检索
- nginx-rtmp 之统计在线clients
- 数据挖掘算法_算法篇(01) 数据挖掘算法初探
- C# 运算符的优先级和关联性
- 人工神工机器人是什么_为什么企业要用电销机器人代理人工
- 使用Nginx反向代理来实现简单的负载均衡
- WPF:动态显示或隐藏Listview的某一列
- ios自定义控件,使UIScrollView自己处理输入时键盘遮挡控件
- 手动修改美化7zip图标 - 附替换文件
- python 实现死亡之ping
- 2021:Python的下载安装教程(很详细,初学者也能懂)
- 《计算机视觉与图像:八大热点公司以及九大应用场景》
- 2017年c语言试题,2017年计算机二级C语言试题
- 奇迹mu选区后就一直显示连接服务器,奇迹mu双开
- matebook14支持触摸屏吗_2020款的matebook14增加了多点触控屏是最大亮点
- 【基础】银行间市场金融设施
- 史上最强Tomcat8性能优化
- 亚利桑那州立大学计算机专业,美国大学亚利桑那州立大学计算机科学专业课程设置...
热门文章
- 关于Java中Switch支持的数据类型
- 硬盘录像机NVR、DVR或者带存储的摄像头通过GB28181协议接入LiveGBS可以播放设备的录像
- 告别流量内卷:这4个Instagram引流的方法让你亚马逊销量暴涨
- qt-wayland平台下复制粘贴原理
- electron-vue初始化项目到打包运行
- python将姓王的都改成老王_Python 实现将numpy中的nan和inf,nan替换成对应的均值
- TreeMap原理实现及常用方法
- SQLyog学习笔记01---安装及基本使用
- python程序语言设计教材_Python语言程序设计 - 中国高校教材图书网
- 【bzoj1617】[Usaco2008 Mar]River Crossing渡河问题 dp