MSER

MSER步骤

  1. 改变阈值,进行极值区域的生成
  2. 稳定区域的判断

极值区域的生成

几个变量的定义(个人理解):

struct ER
{
	struct Hist *hist;
	vector<cv::Point> contours;
	int gray;
	int size;
};
struct Hist
{
	vector<cv::Point> contours;
	int gray;
	int size;
	struct Hist *child;
};
vector< ER >er;//记录水坑
vector< Hist> hist //记录水坑抬高的历史
vector<vector<Point>> BD;//记录水坑的边界 第一维一共256维,不同的分别代表不同的像素值
ER *cur_er;
Hist *cur_er;
vector<Point> *cur_bd;
int cur_water;//当前水位值
int new_water;//新水位值
Point
Created with Raphaël 2.2.0 开始 在er中压入gray=255的空ER; 在图像中选一点,根据它设定cur_water,cur_pos 建一个空ER,并压入到er中并赋值给cur_bd cur_bd->gray=cur_water cur_pos所有的邻域都访问到了 将此点的位置插入到cur_bd->contours,cur_bd->size++ BD栈不为空? 在BD中弹出最小的gray值并赋值new_water,cur_pos new_water < cur_water? 新建一个Hist new_hist,并将cur_er的相关值赋给new_hist cur_hist->child = new_hist,将new_hist入栈,且置cur_hist=new_hist 将old_er->contours合并到cur_er->contorus,更新cur_er->size cur_water=new_water 结束 yes yes no yes no
Created with Raphaël 2.2.0 开始 在er中压入gray=255的空ER; 在图像中选一点,根据它设定cur_water,cur_pos 建一个空ER,并压入到er中并赋值给cur_bd cur_bd->gray=cur_water cur_pos未访问到所有的邻域 访问未访问的邻域,并设置new_water,new_pos new_water < cur_water 将cur_pos压入到bd栈中 cur_pos=new_pos,cur_water=new_water 将new_pos压入到bd栈中 yes yes no

参考链接1:https://blog.csdn.net/roslei/article/details/72918033
参考链接2:https://blog.csdn.net/a664607530/article/details/79319156
参考链接3: http://www.cnblogs.com/shangd/p/6164916.html
参考链接4:http://www.micc.unifi.it/delbimbo/wp-content/uploads/2011/03/slide_corso/A34 MSER.pdf

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值