数学建模社区-数学中国
标题:
基于标记的形状检测
[打印本页]
作者:
吃苹果的梨
时间:
2016-3-1 15:27
标题:
基于标记的形状检测
某些游戏,当用户在触摸屏上输入一个形状(圆、矩形、三角形等)后,应用根据接收到的不同形状来执行不同的操作,但如何判断用户输入的形状类型是此应用的主要问题。
7 [+ @6 L5 a/ i6 f$ _5 m
/ `9 B; J; h$ G
为了解决此问题,下面介绍一种基于标记法的形状识别算法。
" \" X- v/ {( j* {; `
' w; Z& t4 {. W) c9 u; L
对于输入图像,我们需寻找一种表示方法,来区分出所有形状(为了说明这里我们只识别圆、矩形、三角形三种不同的形状,其他形状可对算法进行扩展),无论是何种表示方法,必须对图像的平移、旋转、收缩不敏感。
/ ~! N! D% A! J1 T' g' F* |
% n) \2 x5 Q- J. `% U) E
下面介绍基于标记的形状检测算法:
% |* x. f* H8 J- Q
7 Q' O! {. Q6 G' s
1、获得形状的轮廓坐标;
# b8 C, X$ Z, q( D
5 Q/ Q6 P$ Z% Z) K8 ~
2、将轮廓坐标转换为相应的极坐标(theta-rho),这里我们主要关心rho,rho为轮廓上的点到该形状重心的距离;
+ s6 s" A* v1 f
; n9 d5 {; ]# {0 n4 F
3、根据rho的特征区分各个形状。
) e+ s4 G6 s. @& T) {
) U% B- Z8 W% p; z, G
根据第2步得到的theta-rho关系图(如下图所示)可以得知,圆形的最小rho相对较大;矩形有四个明显的峰值;三角形有三个明显的峰值。故可以利用此特性来区分形状。
- a$ n o+ f. q, {2 W% c. f* y) m% m
9 w. Q8 N* d* I
8 }& ?/ V( L" k* Z
& \- y+ x" D1 U' N& J! f6 { a
3 b3 p/ X$ y+ e9 _
# V5 k: h5 C# T
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5