数学建模社区-数学中国

标题: 基于标记的形状检测 [打印本页]

作者: 吃苹果的梨    时间: 2016-3-1 15:27
标题: 基于标记的形状检测
某些游戏,当用户在触摸屏上输入一个形状(圆、矩形、三角形等)后,应用根据接收到的不同形状来执行不同的操作,但如何判断用户输入的形状类型是此应用的主要问题。0 J% c' B/ y( ]* \

2 t8 E6 J8 ^* l; X& X# h为了解决此问题,下面介绍一种基于标记法的形状识别算法。
4 R2 S1 v# \+ \& b3 X0 U5 `4 {8 u
6 p, c9 M- f/ K% p- j0 J' \8 v对于输入图像,我们需寻找一种表示方法,来区分出所有形状(为了说明这里我们只识别圆、矩形、三角形三种不同的形状,其他形状可对算法进行扩展),无论是何种表示方法,必须对图像的平移、旋转、收缩不敏感。
' K% D4 ~% K( t) k* `
2 |, a* ?6 O7 F下面介绍基于标记的形状检测算法:
3 k6 T3 U6 d8 v. ?, Y3 g+ T& `4 Y, m  A8 b
1、获得形状的轮廓坐标;. n- [9 j* T7 U9 l
9 D  J' O, |) ~* w+ j; }2 B) B
2、将轮廓坐标转换为相应的极坐标(theta-rho),这里我们主要关心rho,rho为轮廓上的点到该形状重心的距离;, x# T- U, \8 k# `6 P: D% ~
. ]7 F! |4 z: s1 _
3、根据rho的特征区分各个形状。
& E* F5 t& e& E5 B( x. F) H4 l7 O: i$ @" @3 o- N8 w. d1 }
根据第2步得到的theta-rho关系图(如下图所示)可以得知,圆形的最小rho相对较大;矩形有四个明显的峰值;三角形有三个明显的峰值。故可以利用此特性来区分形状。$ H/ ]$ ?6 r3 J' h& G8 e
3 W5 M* j# x+ D
1 w8 a4 n. d5 n7 u2 |. x

+ T4 X6 U# ^- Q! f) b& l
3 w! b8 I" {# d2 H
' V3 N8 K1 x3 Q) h! Y




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5