笔迹的占空比,原本隶属于笔迹的布局、字的大小形态和结构特点的风格特征。可以想的简单点,同样大的签字格,同一个人用平常心去签字,那么他消耗的墨水量(假设出水均匀)是相似的。
我们签名的采集框大小规格是1280*800,市场上常见的手写板签字板子大小,这个大小提供的空间不会让人刻意去调整自己的笔迹来适应签字框的大小。首先我们采集一个人的10次的笔迹数据;
笔迹数据,我的格式定义如下当开始签名后,签字着在签名屏上签字,签名屏反馈的签字点数数据。
入下图所示
对应的X轴坐标,Y轴坐标,以及压感,占空比相似度我们先不考虑压感问题。
然后我们将拥有的笔迹的点进行同类处理/同区域处理。
(1)获取笔迹原始数据的长(length)和宽(width),
获取方法如下:
int Xmin=10000,Ymin=10000,Xmax=0,Ymax=0;
while(*pos!=end)
{
if(Xmin>pos->x) Xmin=pos->x;
if(Ymin>pos->y)Ymin=pos->y;
if(Xmax<pos->x)Xmax=pos->x;
if(Ymax<pos->y)Ymax=pos->y;
}
然后我们通过8*8 64宫格法则来,来得到每一宫格的实际单位;
有上可得宫格的XP单位是length/8 YP单位是width/8
那我们定义一个8*8的数组来划分这些点的方法如下:
int code[8][8]={}
while(*pos!=end)
{
code[pos->x/XP][pos->y/YP]+=1;
}
当运行结束就可以得到笔迹占空数据,我对自身的两次签名做了处理,并且图像化表示出来;
第一次:
第二次
接下来我们要比较的就是斜率变化,
黄色代表相似特征,黑色代表差异特征。由此可见本次的相似度位21/27~78%
相似度位78%.
因为我的名字笔画较小所以看上去64点填充不完全。
笔记占空相似比是其中一个判断写字充实度的一个关键,当两个相似度很高的时候可以看以下参数来判断模仿的可能性,就是总值:
这个值的大小更具人书写的速度相关,因为出墨速度一样(机器返点速度一致),花的时间越长模仿的64宫格数值越大。