PDF417 码几何失真的校正:
(1)每个 PDF417 条码都包含一个起始符和终止符,且其模块比例是固定的。 利用这个特性,可以采取扫描条码左右边缘点,能后采用直线拟合方法来确定条码的左右边缘直线。Hough 变换中获得的条码横向边界直线,可以得到四个交点,这四个交点就是 PDF417 条码的四个顶点,将其作为几何畸变校正的四个控制点。具体步骤如下:1) 从 PDF417 码第一行开始,从左到右,从上到下扫描符合 PDF417 码起始符模块比例( 8:1:1:1:1:1:1:3) 图案,并记录下每行起始符开始点的位置信息, 得到一系列条码边缘点, 利用最小二乘法,对这些点进行曲线拟合求取左边界的直线方程。2) 类似第一步,从右到左扫描记录下终止符结束点的位置信息,得到右边界的直线方程。3) 结合Hough 变换求得的上下边界直线方程,求四条直线的交点。
(2)进行校正:
为尽量减小转换带来的图像质量下降问题,选取畸变图形两条对角线的交点作为图像的中心点,转换前后中心点位置不变。校正图像的长宽分别由上下边界的平均值和左右边界的平均值来确定,由此可以确定校正后图像的四个顶点位置。 几何畸变校正变换后, 部分变换后像素点坐标会出现为浮点值的情况, 需要进行插值运算, 由于此时已经是二值图像,双线性插值不能够体现出其优势,而最邻近插值计算量小的特性在这里反而得到突出,因此本项目选用最邻近插值来进行灰度内插。
接着进行码字提取,如下图:
总结:用分级的Hough变换算法检测PDF417条码的倾斜角度并将条码旋转到水平状态。对于可能发生的几何形变也给出了相应的几何校正算法,复原图像。得到一幅规整图像后,采用水平和垂直投影算法,对 PDF417 码进行码字分割。最后根据条码的编码规则,计算条码中每个码字的条空系列,得到整个条码的码字信息,将这些码字信息查表,纠错译码就能得到条码图像中包含的文字或图片信息。