所有提交的电磁系统将被重定向到在线手稿提交系统。作者请直接提交文章在线手稿提交系统各自的杂志。

霍夫变换和亚像素边缘检测的应用一维条形码扫描

严厉的Kapadia1,Alpesh帕特尔2电气Engg系助理教授。,Institute of Technology, Nirma University, Ahmedabad, Gujarat, India 1
相关文章Pubmed,谷歌学者

访问更多的相关文章国际先进研究期刊》的研究在电子、电子、仪表工程

文摘

本文主要重点在两个霍夫变换和亚像素边缘检测算法及其应用维条形码扫描。系统是为了验证条形码在线。条形码验证的主要集中在两个方面。一个是两个图像中检测如果条形码倾斜角度和正确的相同。另一种是实时检测条形码的边缘模糊图像使用亚像素边缘检测。首先我们已经解释了一维条形码的基本理论,即EAN-13。霍夫变换和亚像素边缘检测的详细解释。之后,我已经解释了需要在条形码验证的算法。论文中还包含了系统的MATLAB实现步骤包括这个算法与结果。

关键字

EAN-13、霍夫变换、插值亚像素边缘检测

介绍

如今巨大的进步已经完成在图像处理和计算机视觉的分支。图像处理包括改变图像的本质,以改善其图像信息对人类解释,或使它更适合自动机器人感知。它是科学的一个分支处理图像强度值。其应用程序关注智能机器和系统包括条形码验证和识别、交通控制系统、安全系统、故障和Auto-rejection系统等。这里我们有努力开发一个系统识别EAN-13条形码在线。EAN-13主要是常见的零售项目。在线文字是指在生产的时候。大部分的工业生产零售产品将包含条形码生成器软件生成EAN-13特定行业和产品的条形码。来验证是否生成的条码软件和条码打印是否匹配是非常重要的。如果没有验证它可以创建麻烦在销售点扫描。这一点我们的工作是基于定义的问题。
介绍了条形码在1960年代。它是最受欢迎的自动识别技术在许多应用程序中使用。条形码是一种机器可读的代码定义一系列的酒吧和空间印刷的比率,其原理功能是传递数据。只是平行线的条形码形成厚或薄根据数据编码的代码。他们的第一个应用程序是在铁路车辆。条形码的发明是开发应用程序的结果对于识别各种各样的产品,尤其是在超级市场。今天条形码几乎无处不在。他们在消费产品更受欢迎。他们帮助自动化生产过程中,减少人为错误。自动识别消除两个容易出错和耗时的活动——手工数据收集和数据输入。 Barcodes find important applications in computer technology, especially in the area of manufacturing, distribution, selling, as well as in the development of management information. There are almost dozens of Barcodes currently in use such as code-11, UPC A, UPC E, EAN-2, EAN-5, EAN-8, EAN-13, JAN, QR, PDF417, Data -Matrix, stacked barcode. Some types of barcodes are one-dimensional, two dimensional, numeric codes, alphanumeric codes, industry codes depending on its need. Barcode find use where one needs to identify or track something, for example it can be helpful in a hospital. A wrist band of paper containing barcode tied on patient?s hand. It can be scanned and data information of the patient will be available. Likewise in a supermarket products can be scanned using a laser barcode reader. The most common of barcode reader is the hand held laser scanner which is seen in any super market. Other readers are CCD, camera, and mostly used nowadays is the mobile phone camera.

EAN-13

在EAN-13[2][3][6],最初EAN站欧洲货号现在更名为国际货号。正如它的名字显示它有13位(12数据和1检查),它是原始的超集12位数的通用产品代码系统在美国。它是由标准组织定义的GS1和广泛应用条形码的零售产品。的13位条形码有四个组件,如图1所示。
图1显示了EAN-13条形码的组件。为了破解这信息是必需的。全国数字系统标识编号权威分配生产代码。任何数字系统,从数字0 UPC-A条形码,如890:印度,978:国际标准图书编号(ISBN), 979:国际标准音乐数量(ISMN)。制造商未来五位数代码显示一个独特的代码分配给制造商。所有产品由制造商将使用相同的制造商代码。产品代码是未来五位数设置是一个独特的产品代码指定的制造商。校验和数字是去年13位数是一个额外的数字,这意味着条形码扫描正确。在扫描期间,如果出现问题会导致错误的条形码,所以它是非常有用的,验证是否条形码是否正确解释。这里描述的方法来计算校验和数字。 Odd and even positions are given to the digits of the barcode. Now odd are multiplied by 3 and even are multiplied by 1.Multiplied numbers are added. Suppose that number is 81.81 modulo 10 =1. 10-1=9. So checksum digit is 9.
12位数的条形码将这两组的6位数。第一组可以有两种可能的编码,而第二组有一组单一的模式。它包括校验和数字。13位数编码在95位每个数字都有7位。在这个条形码,白色或黑色空间的宽度可以改变从0到4即最大可以编码0000年或1111年。从表1四列显示相应的条目的数字和其他三个列在表2中显示的数字模式。1日EAN-13解码数字模式的数字。
更重要的是,这个条码包含三个警卫酒吧如图2所示。卫兵酒吧帮助准确地扫描条形码。这些酒吧的模式是固定的。离开了栏杆是101,中心护栏是01010,右后卫酒吧是101。
图3显示了主要部分的验证系统实现。下面的步骤解释道。在预处理需要转换为灰度图像。因此,必须加强对准确扫描原始图像。现在把95位的图像提取的单行条码。然后除了条形码部分删除。在任何包含条形码图像,可以有一个条形码是扭曲的可能性。所以条形码是倾斜的角度必须发现并纠正。这是通过使用霍夫变换[8][9]。霍夫变换专利1962年保罗脚腕基本上是一个特征提取方法用于检测图像中线条和发现任意形状位置和用于计算机视觉和图像处理领域。 As barcode contains straight lines, they can be detected and corresponding to those lines angles can be found. In scanning problem arises when the barcode image is blurred. And one more constraint is that the space for barcode on the product surface is small. So we get a small image. If the barcode is generated by any barcode generating software, it will be an ideal image. And to deal with that ideal image is not a problem. But the real image is mostly blurred. So in order to scan that image some operations must be carried out to accurately scan it. One solution can be increasing the resolution of the image using Super-resolution method. Other can be detecting barcode edges at sub-pixel level using Sub-pixel Edge Detection method.

霍夫变换

霍夫变换专利1962年保罗脚腕基本上是一个特征提取方法用于检测图像中线条和发现任意形状位置和用于计算机视觉和图像处理领域。与此相关的专利,理查德·杜达和彼得•哈特在1972年发明了霍夫变换用于今天,他们将其命名为„广义霍夫变换吗?。一条线可以在图像空间中进行描述
图像
图4显示了霍夫变换的主要思想。所有直线经过点(x, y)满足方程,但斜率m和拦截c的值可能会有所不同。现在考虑点(x, y),参数(m c)被认为是理解图像中直线的特点。这是霍夫变换的主要思想。如果竖线图像中m的值将无穷,所以使用参数(r,θ)。参数r代表线之间的距离和起源,θ是向量的角度从起源到这一点。所以新的重新安排方程
图像(2)
任意点在图像平面坐标系,如(x1, y1)经过的线路
图像(3)
形成一个正弦曲线(r,θ)的飞机,这是独一无二的特定点。现在,更普遍的一个点集构成一条直线将产生曲线穿过(r,θ)。霍夫变换的结果存储在一个矩阵中,通常被称为一个累加器。一个维度是θ值(角)和其他维度是r值(距离),和每个元素有一个值告诉多少分/像素,躺在的参数(r,θ)。因此最高的元素值告诉哪一行是最代表输入图像。霍夫变换的优势,这一点不需要是连续的。这可能很有帮助,如果线坏了由于噪音。多一个要考虑的因素是效率依赖于输入数据的质量。它也有一个重要文件和倾斜校正的字符,发现形状像矩形,圆,椭圆等形象。

亚像素边缘检测

亚像素边缘检测仅仅意味着检测边缘亚像素级。问题是如果条形码图像模糊比白色和黑色空间的宽度被合并。所以它变成了一个艰巨的任务,找出在像素级边缘。因此亚像素边缘检测方法是首选在条形码检测边缘。黑色背景上看,白线时获得的模式是一个理想的分段的波形。但在现实生活中模糊图像波形并不理想。这种模糊将结果变成一个高斯曲线。和检测正面和负面的边缘太复杂。
图5显示了理想的条码及其模式。从图可以观察到的模式只包含两个点要么是0或1。现在模糊边缘的效果将在导数信号衰落的锐利的边缘。所以定位边缘变得更加困难。在扫描精度需要真正的13位条形码。该算法给出了良好的精度。
图6显示了真正的条形码和它的模式不一样理想的条码。它就像一个高斯曲线
算法描述如下。
第1部分:在理论情况下,点对点的导数计算函数。这个函数只有有效值样本时刻的原始值。
第2部分:计算二阶导数。
第3部分:立方插值技术是用于创建一个连续函数的样本值在步骤2中获得的。
第4部分:知道确切的正面和负面的边缘位置,从第3部分函数的零交点位置待定。
图7显示了不同的亚像素边缘检测的步骤。这里的目标是确定具体的条码图像边缘的模糊。方法是取出样本视图的任意横截面线包含一行的条形码是蓝色的图。然后下一步是计算采样点的一阶导数,它由粉红点如图。边缘位于这个导数函数的最大和最小。这些职位是由计算二阶导数图绿色点所示。在这个函数的边缘位于零交叉。决定这些位置与精度这个函数插值在第四部分。插值实现部分所示。
图8显示了实际的条码的第一和二阶导数。粉色点的一阶导数和绿色的二阶导数。图9显示了实际的零交叉检测。红色箭头显示的插值曲线是穿越零。

MATLAB实现

在任何包含条形码图像,可以有一个条形码是扭曲的可能性。所以条形码是倾斜的角度必须发现并纠正。这是通过使用霍夫变换[10][11]。在常规使用激光扫描仪扫描对象包含条形码必须在水平位置和固定举行。这个扫描的优点是它需要的时间。如前所述,我们所做的这项工作基于相机系统。所以持有对象水平和固定不方便实时系统。这里我们使用霍夫变换将正确倾斜扫描条形码反过来协助准确。
MATLAB具有内置功能的霍夫变换的脚腕,houghpeaks houghlines。这些功能在本文前面所述。霍夫变换吗?年代在MATLAB函数能够探测角范围内的-90°- 90°。这里我们考虑两种情况对倾斜的图像,可以在第一和第四象限(范围为-90°~ 90°)。面临的主要问题是,角输出应用Hough变换后获得的不是标准即如果图像是倾斜30°,输出将显示一些角度包括30°。因此,主要任务是找出图像是倾斜的角度。然后才可以纠正准确。它没有给出准确结果的图像。所以不可以忍受的。 I decided to form new functions to make it accurate enough for any image. Then I started writing new functions to make the system error proof. On the way I realised some more constraints which were giving wrong output. Finally I came up with the solution. I created four functions which are explained below.
功能1:需要倾斜图像作为输入,将图像中的线条绘制的角度。
步骤1:把倾斜的样本图像作为输入
步骤2:将它转换成黑白图像
步骤3:应用图像的边缘检测
步骤4:应用hough变换
第五步:找到脚腕的山峰
第六步:情节的脚腕
第七步:得到的角度linesFunction 2:将函数的输出1(角度),找到没有。每个角的出现次数。它给一个矩阵包含每个角至少一个时间作为输出。
步骤1:将角发现作为输入
步骤2:初始化一个数组来存储角度的发生
步骤3:把角至少发生一次arrayFunction 3:创建这个函数支持天使校正。它会给一个矩阵显示零角度发生的数量。步骤1:以角度为inputStep 2:找到零角度的数量输入矩阵
功能4:这是主角度校正功能。倾斜的图像作为输入。这是紧随其后的是上述三个函数创建。的帮助下这三个函数,这个函数试图纠正角度直到达到一定值的零角度。这个零角满足图像现在完全纠正。需要输入的角度
功能2到正确的角度。如果特定数量的零没有达到需要下一个角和遵循相同的过程。
步骤1:把输入图像倾斜
步骤2:使用函数1、2和3找到角,角零角度的存在和数量。
步骤3:检查是否零角度的数量低于以上指定一个阈值(例如
步骤4:如果以上条件满足旋转图像与天使(从角出现数组)。如果不尝试下角与角发生矩阵。
图9显示了倾斜条形码图像作为样本。图10显示了边缘检测的步骤应用于样本条形码图像倾斜。
图11显示了霍夫变换的样本条形码。霍夫变换是应用于边缘检测。哈夫变换MALAB内置的代码了。图12显示了脚腕行显示了五行的条码图像倾斜。如果需要我们可以指定更多的行。图13显示了纠正条码图像。在MATLAB编写代码的解释步骤。它给出了一个角作为答案。原样品图像旋转的角度,我们可以得到水平条形码图像中。
扫描的条形码是95位。这里我用亚像素边缘检测方法检测边缘的实时模糊条形码图像亚像素级。我已经成功地扫描图像模糊是一个级别,甚至肉眼无法识别的边缘。编写的代码扫描图像包含但是先前创建的函数。可以提供一个目录由用户或图像路径可以直接写在代码。的步骤如下。
步骤1:将输入图像
第二步:找到图像是否2 d或3 d转换成黑色和whiteStep 3:拿出一行包含完整的条形码
第四步:删除的部分除了条形码行
第五步:把第一行数组的分化
第六步:取出第二分化
7:插入第二个分化
8:存储最大和最小值(这里我们进入亚)
第九步:找出零过境点和存储它们
第十步:比较每个值的零交叉存储的最大和最小值。找出哪些是强和弱边缘。保持强大的边缘和删除疲弱的经济体
第11步:找出瘦条的宽度(1日栏杆和去年栏杆)
步骤12:这四个宽度存储在一个数组
13步:找出哪些边缘是黑色的酒吧和白色的酒吧
步骤14:形成一个数组包含黑色或白色条的宽度
15步:形成1 * 95位考虑宽度和酒吧(白色或黑色)
16步:给这些位函数开发解码条形码
图14显示了实时模糊条码图像的亚像素边缘检测算法。图15显示了灰度图像。然后采取行样品主要是中间行,如图16所示。
图17显示了样本的一阶推导行。图18显示了一个情节包含的亚像素插值零交叉和实际检测到的边缘。

结论

一些约束发生在这种发展,比如如果条形码倾斜一个角度超过180即如果是第三或第二象限角检测使用霍夫变换是很困难的。其他重要的约束,如果图像的大小改变扫描条形码的软件面临的问题。如前所述,软件面临的问题完全解决实时模糊图像。现在可以扫描准确地理想和实时图像。等问题发生角校正部分软件无法正确角度5,17日,29日等,准确地纠正角度10、20、30、40、50等。但现在我已经做了一些修改的代码和功能,这样就可以解决这个问题。GUI的问题是相机乱射图像不能被认为是笔记本摄像头并非如此高分辨率的相机。一件事是,握着条形码包含对象的手脸所以图像不稳定的振动问题。这些图片不是扫描。正如我在GUI包括相机只是为了演示的目的。我之前也创建了之类的函数来处理图像扫描、图像模糊等。更好的软件的一部分,它不花很多时间执行,给结果。 So this logic used in the code can be used to develop a real-time system in industry. Further modifications in the code and GUI can be done according to the need of the user.

表乍一看

表的图标 表的图标
表1 表2

数据乍一看

图1 图2 图3 图4 图5
图1 图2 图3 图4 图5
图6 图7 图8 图9 图10
图6 图7 图8 图9 图10
图11 图12 图13 图14 图15
图11 图12 图13 图14 图15
图16 图17 图18
图16 图17 图18

引用


















全球技术峰会