文号
t14029
阅读
7151
回复
5
收藏
3
【RF】验证码的分析与识别-凸包算法
2009/04/05
IP:广东
凸包,可以被理解为在一块木板上钉上许多钉子,再用一根橡皮筋把最外面的钉子圈起来,就是所谓的凸包,如图所示

cx0.png

很多算法是基于凸包的,不一一介绍。

关于凸包的算法很多,这里不一一列举,仅介绍一种经典算法——Graham 扫描法
在这个算法中,要使用到栈的概念,PUSH和POP
PUSH是把一个变量压入栈中,存放在栈的最上方,POP则是把栈的最上面一个变量弹出

首先寻找一个最低的点(P0),然后开始向P1连接
再把P1压入栈中
P2开始向P3连接
如果向P3连接的这条线是向左转,就压入栈中。
否则就POP出这个坐标,跳过这个坐标连接下一个点,如图所示

cx1.png

最后,正确的凸包坐标被全部压入栈中。

cx2.png

由于这是经典算法,算法的正确性证明略。

参考文献

[1] 《算法导论》第二版,作者Gxxx,Axxx……200X年XX出版社;

。。。。。。 其实没参考 = =
+1000
科创币
delete
2009/04/05
17年9个月前IP:未同步
88303
1楼
搞学术?

为什么不加书籍引用说明
引用
评论
17年9个月前IP:未同步
88307
2楼
请把其中求得方向角及对其进行判断的方法展现一下,不然部分同学不理解
引用
评论
93°作者
17年9个月前IP:未同步
88308
3楼
需要么= = ?向量的干活……
引用
评论
17年8个月前IP:未同步
100370
4楼
hao [s:251]
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的