数学建模社区-数学中国

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

作者: 吃苹果的梨    时间: 2016-3-1 15:27
标题: 基于标记的形状检测
某些游戏,当用户在触摸屏上输入一个形状(圆、矩形、三角形等)后,应用根据接收到的不同形状来执行不同的操作,但如何判断用户输入的形状类型是此应用的主要问题。% i# |7 A. ^5 S- k0 W, P! Z

& v1 Q% H0 x2 t* C  v- j, T& _为了解决此问题,下面介绍一种基于标记法的形状识别算法。$ d; I" }; ~2 D' g0 M

8 n9 D/ \4 ?5 |对于输入图像,我们需寻找一种表示方法,来区分出所有形状(为了说明这里我们只识别圆、矩形、三角形三种不同的形状,其他形状可对算法进行扩展),无论是何种表示方法,必须对图像的平移、旋转、收缩不敏感。# r- _+ E9 {: `! {' ?- e
  ?7 Q2 ^  }, K9 R' _0 D
下面介绍基于标记的形状检测算法:8 g5 N0 I( t  F" g7 ^9 M
" b1 ^1 F4 E; X2 M) n7 l+ }( u0 r% n( I
1、获得形状的轮廓坐标;
4 Z* O+ W' O/ E0 F3 i* j  p/ s! Q1 A' |1 i0 V
2、将轮廓坐标转换为相应的极坐标(theta-rho),这里我们主要关心rho,rho为轮廓上的点到该形状重心的距离;. [2 `) p' X7 R- K! f& ?7 h! _, m
" P. R/ L; D8 z6 f( _
3、根据rho的特征区分各个形状。
! X7 u7 D7 V" H7 s
0 z4 r8 T' I% m; M: U: }/ \根据第2步得到的theta-rho关系图(如下图所示)可以得知,圆形的最小rho相对较大;矩形有四个明显的峰值;三角形有三个明显的峰值。故可以利用此特性来区分形状。4 b- e  O! P- f/ j( f: R. H/ j5 F: J! }

0 S9 e+ k3 x3 _3 n3 }& [
7 Y: Y6 J7 R! n3 r

  d! {5 J/ s! A  }# t' u7 E5 V8 O/ H$ I0 u$ f5 Q. k

* Z' q( e( f7 F1 U3 Z9 x




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