手绘几何图形识别(下)
四.图元识别
图元是组成图形的最小单元,图元识别是图形识别的基础。在笔画分割的基础上,对分割出来的图元进一步识别。
1.直线识别
直线的特征具有线性化,假设收集的采样点是P(Xi,Yi),i=1,2,3...n。
线性化判断有下面三种方法:
1)图元首位点的距离,和采样点序列的累计弦长的比值,是否大于一个给定阈值
2)图元上采样点到首位点连成直线的距离超过阈值的点的个数,是否在允许范围内
3)图元的外接矩形长宽比是否小于某一阈值
2.直线拟合(最小二乘法)
直线拟合采用最小二乘法,设y=f(x)=a+bx为拟合直线方程。
d为点序列S={p(Xi,Yi)|i=0,1,2...n}到拟合直线的距离。
偏差平方和最小时,拟合度最高。
将a、b值带入线性方程y=a+bx,即得到回归直线方程。
2.提取几何特征参数
凸包 外切矩形 最大内接三角形 最大内接四边形
3.第一特征比值示例
图形类型 |
第一特征比值 |
圆 |
凸包周长平方/凸包面积 |
线 |
外切矩形高度/外切矩形宽度 |
长方形 |
凸包面积/外切矩形面积 |
椭圆 |
最大内切四边面积/凸包面积 |
三角形 |
最大内切三角形面积/凸包面积 |
菱形 |
最大内切三角形面积/最大内切四边形面积 |
梯形 |
最大内切四边形面积/外切矩形面积 |
五角星 |
最大内切三角形面积/外切矩形面积 |
五.特征点选取
识别出是哪种图形之后,相应的找出特征点,特征点选取的好坏,直接影响了最后绘制图形的好坏。主要参考的是绘制速度和曲率2个参数。
曲率的计算公式:k=△φ/△S
其中:△φ表示切线倾角变化值,△S表示曲线的弧长。 △φ=atan(△y/△x)作为曲线在点P处角度变化值; 从曲率的定义可以看出,在切线倾角改变相同的情况下,两点间距离越小, 曲率越大。这一特性非常适用于判断特征点,因为笔划中特征点处采样点之间 的距离较小,而角度变化较大。
但是当笔划含有较多噪声时,该方法计算出噪声点处的曲率较大,真正的特征点曲率也比较大,这就无法区分出真正的特征点和由噪声引起的特征点。 采用ODR(orthogonal distance regression)方法求曲线在某点的切线方向。该方法是用直线拟合的方法来寻找一条过该点直线,使得该点邻域内的各点到该直线的距离之和最小,然后取该直线与X轴的夹角作为该点的切线方向。 对于曲线上某点P。
ODR方法求切线方向:
再通过均值滤波法求出特征点。进行绘制。