1.3 答题卡网格化分割

根据答题区域的网格化特点,可以对网格进行水平、垂直分割,结合标题、答案的区域大小进行内容定位。假设图像的行数即高度为M,列数即宽度为N,对预处理后的答题卡进行水平、垂直方向的积分投影计算,计算公式如下:

因此,可对图像进行行列方向的求和得到积分投影序列,通过绘制投影曲线,将其对应于图像的行列分布来得到网格线定位结果,关键代码如下所示。

运行后,可得到归一化后的水平、垂直方向的投影曲线,并将其叠加绘图到原图,具体如图1-3和图1-4所示。

图1-3 水平方向投影曲线

注意到这里采用归一化方法,并分别将水平、垂直方向的投影曲线的尺度对应到图像宽度、高度,由此可方便地与原图叠加分析得到网格线的位置定位。

图1-4 垂直方向投影曲线

如图1-3所示,水平方向的积分投影在水平的网格线位置呈现出明显的峰值;如图1-4所示,垂直方向的积分投影在垂直的网线位置呈现出明显的峰值。但是,垂直的网格线由于图像采集过程中的畸变干扰,呈现出一定的扭曲现象,这导致右半部分的垂直网格线积分投影峰值不够突出,需要一定的补充计算。同时,水平和垂直的波峰分布也具有一定的邻域重叠特点,这正是网格线的宽度引起的波峰重叠,也需要一定的合并计算。

因此,考虑到网格分布的规则性,可根据以计算网格线的间隔以及网格的个数来进行网格线邻域的合并,以及垂直网格线的自动补充,关键代码如下所示。

程序运行后,可绘制水平和垂直的网格线,并观察与实际网格的契合度,效果如图1-5所示。经积分投影方法可以定位答题区域的网格线,并且根据答题区域呈现正方形特点可以方便地定位出答题框,再根据框内的像素分布即可提取有效的答案图像,用于匹配识别。

图1-5 答题区域的网格分布