数学建模社区-数学中国
标题:
基于标记的形状检测
[打印本页]
作者:
吃苹果的梨
时间:
2016-3-1 15:27
标题:
基于标记的形状检测
某些游戏,当用户在触摸屏上输入一个形状(圆、矩形、三角形等)后,应用根据接收到的不同形状来执行不同的操作,但如何判断用户输入的形状类型是此应用的主要问题。
6 c4 U4 w# S/ y f8 ]% h' ~& Z
6 j0 V/ V/ \ _2 |$ r% ^
为了解决此问题,下面介绍一种基于标记法的形状识别算法。
; _) b2 w7 A; X" F0 r
( @! }- C$ {0 T3 c6 \
对于输入图像,我们需寻找一种表示方法,来区分出所有形状(为了说明这里我们只识别圆、矩形、三角形三种不同的形状,其他形状可对算法进行扩展),无论是何种表示方法,必须对图像的平移、旋转、收缩不敏感。
4 j }% z- }) a* t7 @2 p5 m
& }3 e8 ?% ^! J6 E: H
下面介绍基于标记的形状检测算法:
+ W: T# A& W8 f% A! E2 D
6 W+ ]' `% V+ J9 @1 S4 j9 |# `8 n) b: r
1、获得形状的轮廓坐标;
+ f" ~0 r3 I$ {+ {
6 E6 c7 J% R# R6 M0 d, W& H
2、将轮廓坐标转换为相应的极坐标(theta-rho),这里我们主要关心rho,rho为轮廓上的点到该形状重心的距离;
- h/ k% x/ i R* ]1 V$ |1 |. b
" K0 T6 h( l. Y/ ?
3、根据rho的特征区分各个形状。
; Y- h0 ?6 v7 O% O# K& z) h% d2 O
( o9 t0 _* ?+ ?1 h
根据第2步得到的theta-rho关系图(如下图所示)可以得知,圆形的最小rho相对较大;矩形有四个明显的峰值;三角形有三个明显的峰值。故可以利用此特性来区分形状。
% u/ F) D9 j" \" S) X1 N( \
; \4 s, h4 B, H5 U& a+ p
6 w8 H p" j( S- ~% K' |
I& X1 S" Z. Q
. _" ]6 W6 I. R1 }8 z4 n6 A5 g
: Q1 F$ V. w: { A" [
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5