数学建模社区-数学中国

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

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

9 p/ m! L2 L: E7 U, d5 F4 A* X5 v为了解决此问题,下面介绍一种基于标记法的形状识别算法。: o2 M, F1 T# r% _- A8 m

0 m. C% `! h5 F5 L/ l/ a对于输入图像,我们需寻找一种表示方法,来区分出所有形状(为了说明这里我们只识别圆、矩形、三角形三种不同的形状,其他形状可对算法进行扩展),无论是何种表示方法,必须对图像的平移、旋转、收缩不敏感。
+ V8 _( Q& \7 B" X/ b- @
: b+ k7 Z1 G1 W下面介绍基于标记的形状检测算法:% p9 ^0 E, v" Z- e0 _
- Z3 S, Y/ t% z  q0 @3 ]! c
1、获得形状的轮廓坐标;
: q$ X5 I$ c- H8 E5 R+ }6 g' F- K: H2 R/ ^
2、将轮廓坐标转换为相应的极坐标(theta-rho),这里我们主要关心rho,rho为轮廓上的点到该形状重心的距离;
+ N6 y' G4 B! v; E+ \
, X0 F1 _; ^) M% F5 t5 K3、根据rho的特征区分各个形状。1 w  g  B" [) e2 R  U8 f
$ q8 w6 |5 ^5 S" u
根据第2步得到的theta-rho关系图(如下图所示)可以得知,圆形的最小rho相对较大;矩形有四个明显的峰值;三角形有三个明显的峰值。故可以利用此特性来区分形状。
" a! ?6 P) Q2 S( r: }0 P; s/ q& m, C" o
$ c. i: W" q% M3 K1 T
0 [/ u% {- s* S$ z% Y; _6 k" H

2 H% h+ B( \  }
7 q1 Q  u; _' A




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