数学建模社区-数学中国
标题:
基于标记的形状检测
[打印本页]
作者:
吃苹果的梨
时间:
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' u
7 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