论文部分内容阅读
现在二维码已经应用于与人类生活密切相关的各个领域。然而一般的二维码都是由国外的一些研究者提出的,这些二维码没有也不会考虑中文汉字的处理,所以很难适用于我国的某些行业的应用。为此,我国提出并开发了具有自主知识产权的二维码——汉信码。汉信码不但能够很好地处理其他二维码所处理的信息,同时大大增强了汉字的处理能力。在汉信码的应用中,某些行业需要通过专用打印机将汉信码打印到纸张上,例如增值税发票上的汉信码。在打印过程中可能由于进纸器的磨损、色带的油墨不适中等原因,打印出来的汉信码会产生扭曲、拉伸、颜色不均等问题。而在识别时,由于使用的又是专用的扫描仪,同样由于进纸器的问题,可能导致二次拉伸、扭曲等。这样扫描后的数字图像用一般的二维码识别技术就很难正确识别。因此,针对这类问题开发一种特别的汉信码识别技术就显得尤为重要。本文主要包括以下几个部分:首先,介绍了汉信码的基本理论和译码规则,二维码的国内外研究现状,本文的研究目的和意义。其次,提出基于OpenCV库对汉信码精确定位的算法,其核心思想是检测矩形轮廓。通过对图像进行形态学的腐蚀与膨胀、坎尼边缘检测、二值化、多边形逼近轮廓等一系列操作,检测矩形轮廓的位置。对于有一定倾斜角度且其它矩形干扰较少的图像,本算法具有较好的正确提取率。再次,提出一种针对增值税发票沿坐标轴方向积分的算法,找到定长区间积分最大值的位置,粗定位码图。一般情况下,打印在发票上的码图可能有一定的倾斜,但是码图边线的斜率会在一个固定的范围内。我们在该范围内选取若干个斜率,然后以该斜率的直线为坐标轴建立直角坐标系,再沿横坐标轴积分,找到纵坐标轴定长区间积分最大值。不同斜率对应不同的积分最大值,其中最大者对应的斜率就是横向的最好斜率。对纵坐标轴也做同样的操作,得到对应的纵向最好斜率。进一步,在横纵最好斜率附近,寻找两斜率乘积最接近-1的斜率,即为最佳斜率。根据求得的最佳斜率,对原始图像作相应的旋转,使码图的边与坐标轴水平。之后,我们应用检测矩形轮廓的算法,精确定位汉信码。最后,对于标准化后的汉信码,首先对码图作直方图均衡化、中值滤波等预处理。接着利用寻像图形、校正图形判断码图是否产生了形变,通过图形变换恢复到理论位置。最后进行网格化,判断模块的灰度属性,最终提取出“0”、“1”数据流。