数学建模社区-数学中国
标题:
基于标记的形状检测
[打印本页]
作者:
吃苹果的梨
时间:
2016-3-1 15:27
标题:
基于标记的形状检测
某些游戏,当用户在触摸屏上输入一个形状(圆、矩形、三角形等)后,应用根据接收到的不同形状来执行不同的操作,但如何判断用户输入的形状类型是此应用的主要问题。
- P( Y0 F; d' q% N/ q( r" y0 m" Z2 S
{7 m6 ~& ]8 R. i6 a: ]
为了解决此问题,下面介绍一种基于标记法的形状识别算法。
0 c" |+ B' T/ |% {0 A% M) r
+ u) F& n7 a- I9 x9 {' F9 V3 _
对于输入图像,我们需寻找一种表示方法,来区分出所有形状(为了说明这里我们只识别圆、矩形、三角形三种不同的形状,其他形状可对算法进行扩展),无论是何种表示方法,必须对图像的平移、旋转、收缩不敏感。
5 _# q& f; A! k% {1 ~. t4 f
# h1 _# R$ W0 V2 c* D/ V
下面介绍基于标记的形状检测算法:
( m2 F7 U2 r9 k8 y3 F
) l8 D+ r; @2 {, S1 g6 t7 v @
1、获得形状的轮廓坐标;
/ T+ J1 T$ [. V1 w3 B
6 u% [7 Q) t& R1 O( P+ s: p
2、将轮廓坐标转换为相应的极坐标(theta-rho),这里我们主要关心rho,rho为轮廓上的点到该形状重心的距离;
/ n# D; \( T# }8 M; i& \, b$ l0 R
5 ?: V& W0 R+ f6 O& P
3、根据rho的特征区分各个形状。
~0 C% o0 X' L7 X
4 d( ?, r& {/ C9 Y0 z. b! ]5 J
根据第2步得到的theta-rho关系图(如下图所示)可以得知,圆形的最小rho相对较大;矩形有四个明显的峰值;三角形有三个明显的峰值。故可以利用此特性来区分形状。
+ n8 E" j5 S o$ g$ m
' T2 L4 [8 M; ?2 p4 X7 O9 f3 {# @
) |0 r; Q8 d' q3 K
' k. z/ C/ X- c8 W
! w$ N" Y7 j" x$ m: R+ v w
' k ]4 O- s3 B2 d' N K* S- E
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5