数学建模社区-数学中国

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

作者: 吃苹果的梨    时间: 2016-3-1 15:27
标题: 基于标记的形状检测
某些游戏,当用户在触摸屏上输入一个形状(圆、矩形、三角形等)后,应用根据接收到的不同形状来执行不同的操作,但如何判断用户输入的形状类型是此应用的主要问题。
7 M' |* b- R/ i$ l# d
$ `( o; Y: j1 ^; _! X为了解决此问题,下面介绍一种基于标记法的形状识别算法。, Z; m+ P- [; d0 g! j' l: d5 y
3 O; g3 h0 s: S* N; K9 [/ y* x  H
对于输入图像,我们需寻找一种表示方法,来区分出所有形状(为了说明这里我们只识别圆、矩形、三角形三种不同的形状,其他形状可对算法进行扩展),无论是何种表示方法,必须对图像的平移、旋转、收缩不敏感。
. \' k5 `+ E' D7 \5 X4 Z! ^1 t$ P+ r: W
下面介绍基于标记的形状检测算法:' n  d; x5 j" X4 R
* U* a9 X: G* `6 ~2 [
1、获得形状的轮廓坐标;7 a' Y; D% E9 Z0 W) P; x+ p. x7 ~) G

, `6 \9 S5 E2 X. c2、将轮廓坐标转换为相应的极坐标(theta-rho),这里我们主要关心rho,rho为轮廓上的点到该形状重心的距离;
% d3 j& P" K* L8 Q0 l# }  s- @4 a" W% \& P
3、根据rho的特征区分各个形状。
! A2 o$ J' `8 |8 Z7 I0 r9 K7 P# f" F; t! l8 x, m
根据第2步得到的theta-rho关系图(如下图所示)可以得知,圆形的最小rho相对较大;矩形有四个明显的峰值;三角形有三个明显的峰值。故可以利用此特性来区分形状。
$ [) G+ [$ i: }( @
  m, Z& N2 Q6 n1 w5 F% S4 x
3 b' d0 g$ I& W9 g$ L
! e1 F1 l* F, i  j4 R

/ u* t# C1 r; H1 {9 B* f7 Y  _5 E7 `





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