CN110046688B - 一种条码的定位与识别方法 - Google Patents
一种条码的定位与识别方法 Download PDFInfo
- Publication number
- CN110046688B CN110046688B CN201910321196.7A CN201910321196A CN110046688B CN 110046688 B CN110046688 B CN 110046688B CN 201910321196 A CN201910321196 A CN 201910321196A CN 110046688 B CN110046688 B CN 110046688B
- Authority
- CN
- China
- Prior art keywords
- bar code
- square
- frame
- square block
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06018—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking one-dimensional coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06046—Constructional details
- G06K19/06131—Constructional details the marking comprising a target pattern, e.g. for indicating the center of the bar code or for helping a bar code reader to properly orient the scanner or to retrieve the bar code inside of an image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1443—Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
一种条码的定位与识别方法,条码最外围为一黑色的边框,边框的宽度为0.5个单位长度;黑色边框中均匀分布着十个大小相等的正方形方块,每个正方形方块的边长为1个单位长度,每个正方形方块与边框之间的上下垂直距离均为0.5个单位长度;从左至右,第一个正方形方块与边框左侧之间的水平距离为0.5个单位长度,第十个正方形方块与边框右侧之间的水平距离也为0.5个单位长度,相邻的两个正方形方块中心之间的距离相等,都为2个单位长度;整个条码的长度为21个单位长度,宽度为3个单位长度。本发明设计了一种条码及相应的识别算法,可以快速有效地实现条码的识别、条码的定位以及条码方向的判断。
Description
技术领域
本发明属于条码定位、条码识别领域,具体涉及一种条码及其定位与识别方法。
背景技术
条码在人们的日常生活中很常见,且广泛应用于各种各样的场合,例如:在超市购物时收银员通过商品上的一维码来识别商品、通过扫描微信二维码来添加微信好友等等,这些都是条码识别在日常生活中最常见的应用。条码主要有一维码和二维码两种。一维码由一组规则排列的条、空以及对应的字符组成,这些条和空组成的数据表达一定的信息,并能够用特定的设备识读,转换成与计算机兼容的二进制和十进制信息,根据码制的不同,一维码主要有EAN码、39码和Codabar码等。二维码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的,在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息。尽管一维码和二维码在许多场景下得到了广泛的应用,但是,由于目前已经存在的一维码和二维码自身的局限性,它们的应用范围会受到限制,例如:根据一个物体上所贴的条码实现对物体的种类识别、位置判断和方向判断,此时现存的一维码和二维码都不容易做到。对于一维码来说,由于一维码维度的局限性,导致一维码只能在水平或垂直的四个方向上被识别,不能在任意方向上被识别,且由于一维码没有明显的特征,导致不容易通过一维码的特征定位到一维码。二维码尽管能在任意方向上被识别,但条码的角度不好判断,且由于二维码为正方形码,在一些应用环境下不方便黏贴。
发明内容
本发明针对现有技术中的不足,提供一种条码及其定位与识别方法。
为实现上述目的,本发明采用以下技术方案:
一种条码,其特征在于:条码最外围为一黑色的边框,所述边框的宽度为0.5个单位长度;黑色边框中均匀分布着十个大小相等的正方形方块,每个正方形方块的边长为1个单位长度,每个正方形方块与边框之间的上下垂直距离均为0.5个单位长度;从左至右,第一个正方形方块与边框左侧之间的水平距离为0.5个单位长度,第十个正方形方块与边框右侧之间的水平距离也为0.5个单位长度,相邻的两个正方形方块中心之间的距离相等,都为2个单位长度;整个条码的长度为21个单位长度,宽度为3个单位长度。
为优化上述技术方案,采取的具体措施还包括:
进一步地,条码中分布的正方形方块用于条码的编码,十个正方形方块对应于十位的编码。
进一步地,所述正方形方块的颜色表示某一位的数值,当正方形方块的颜色为黑色时,该位的数值为1;当正方形方块的颜色为白色时,则该位的数值为0。
进一步地,条码设有起点和终点,第一位为条码起点,起点值为1,即最左边的正方形方块为黑色;第十位为条码终点,终点值为0,即最右边的正方形方块为白色;实际有效编码为中间的八位。
此外,还提出了一种如上所述的条码的定位与识别方法,其特征在于,包括如下步骤:
步骤一:对条码进行轮廓检测,得到的轮廓如下:边框的外轮廓Cout和内轮廓Cin,n个黑色正方形方块的轮廓C1…Cn,n=1,…,9;
步骤二:计算外轮廓Cout的中心点坐标,即为条码的位置坐标,记为Oout;
步骤三:分别计算方块轮廓C1…Cn的中心点坐标,记为O1…On;
步骤四:分别计算中心点坐标O1…On与Oout之间的距离,寻找距离最大值,并将该中心点坐标Om所对应的第m个方块轮廓Cm记为条码的起点,m=1,...,n;
步骤五:根据剩余n-1个方块轮廓的中心点坐标到Om之间的距离,得到条码的编码;
步骤六:判断条码方向,根据条码起点的坐标Om和条码的坐标Oout,确定条码与水平或垂直方向的角度。
进一步地,所述步骤一中,使用opencv中的findContours方法得到的条码的轮廓。
本发明的有益效果是:快速有效地实现条码的识别、条码的定位以及条码方向的判断。对于一张图中拥有多个条码的图片,通过该方法,可以定位到条码在图片中位置,识别条码所代表的二进制数值,并判断条码的朝向。能够在任意方向上被识别,根据所贴的条码就可以识别物体的种类,判断位置和方向。
附图说明
图1是条码的样式示意图。
图2是条码的样例示意图。
图3是条码的扫描轮廓示意图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
如图1所示为本发明中所设计的条码样式。条码最外围为一黑色的边框I,边框I的宽度为0.5个单位长度。黑色边框I中分布着十个大小相等的正方形方块II,每个正方形方块 II的边长为1个单位长度,每个正方形方块II与边框I之间的距离在水平和垂直方向上都为0.5个单位长度。每两个相邻的正方形方块II中心之间的距离相等,都为2个单位长度。整个条码的长度为21个单位长度,宽度为3个单位长度。
条码的实际大小可以根据实际的使用环境任意按比例缩放,缩放时所遵循的比例关系为之前描述的各部分单位长度之间的比例关系。
参见图2,介绍条码编码规则如下:
条码中分布的十个正方形方块II用于条码的编码。用每个正方形方块II的颜色表示某一位的数值,若正方形方块II的颜色为黑色,则该位的数值为1,若正方形方块II的颜色为白色,则该位的数值为0。
条码有起点和终点。起点的值必为1,即正方形方块II的颜色为黑色,在图2中即为最左边的黑色正方形方块。终点的值必为0,即正方形方块II的颜色为白色,在图2中即为最右边的白色正方形方块。
根据条码得到的编码为十位,但实际的有效位只有中间的八位。第一位为条码起点,必为1,第十位为条码终点,必为0。
图2中,条码编码为1100101100,实际有效位为10010110。
下面根据图3,对条码定位、条码识别和条码方向判断的原理进行详细、清晰地描述。
本发明的算法是根据条码中各部分的轮廓来进行条码定位、条码识别和条码方向的判断,图3是使用opencv中的findContours方法得到的条码的轮廓,结合图3具体说明算法原理。
条码定位:在图片中寻找条码的结构从而定位条码。以图3来说明条码结构。图3中,轮廓1包括且仅仅包括轮廓2,轮廓2包括轮廓3至轮廓7,轮廓3至轮廓7不包括任何轮廓。找到所有这样的结构,并得到条码最外围轮廓(图3中为轮廓1)中心点的坐标,即为条码的位置坐标,记为O。
条码识别:分别计算轮廓3至轮廓7的中心点的坐标。前面已经说到,由于条码是有头有尾的,因此代表条码开头的轮廓(图3中的轮廓3)与条码坐标O之间的距离是最大的。通过这个关系找到了条码的开头。之后计算剩余轮廓,即轮廓4至轮廓7到轮廓3的距离,从而得到条码的编码。例如:轮廓4与轮廓3的距离为2个单位长度,则将条码的编码(八位)中的第一位(即最高位)置为1。
条码方向判断:如上面所说,得到了条码开头的坐标和条码的坐标,根据这两个坐标,便可以计算条码与水平或垂直方向的角度,根据实际的应用场景即可换算成需要的角度。
根据上述算法使用opencv完成代码的书写。
安装配置好摄像头,拍摄图像,图像中包括多张条码。
使用写好的算法检测条码。
实施例中,我们使用鱼眼摄像头进行了一系列测试,测试结果如下:
摄像头型号:海康DS-2CD3955FWD-ws,焦距为1.05mm。
首先要对鱼眼摄像头得到的图片进行畸变校正。
摄像头高度为1.3米,条码的长度为30cm时,在以摄像头为中心,半径为1.5米的圆内,条码在任意方向都可以被识别到。
距离的误差小于等于5cm,角度的误差小于等于2度。
可以看到,本发明中的条码和算法可以很好的解决现存的一维码和二维码在多条码、多角度、多方向识别上的缺陷和不足,可以实现任意角度、任意位置的条码定位和识别,且误差较小。
需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (3)
1.一种条码的定位与识别方法,其特征在于:条码最外围为一黑色的边框(I),所述边框(I)的宽度为0.5个单位长度;黑色边框(I)中均匀分布着十个大小相等的正方形方块(II),每个正方形方块(II)的边长为1个单位长度,每个正方形方块(II)与边框(I)之间的上下垂直距离均为0.5个单位长度;从左至右,第一个正方形方块(II)与边框(I)左侧之间的水平距离为0.5个单位长度,第十个正方形方块(II)与边框(I)右侧之间的水平距离也为0.5个单位长度,相邻的两个正方形方块(II)中心之间的距离相等,都为2个单位长度;整个条码的长度为21个单位长度,宽度为3个单位长度;条码中分布的正方形方块(II)用于条码的编码,十个正方形方块(II)对应于十位的编码;所述正方形方块(II)的颜色表示某一位的数值,当正方形方块(II)的颜色为黑色时,该位的数值为1;当正方形方块(II)的颜色为白色时,则该位的数值为0;条码设有起点和终点,第一位为条码起点,起点值为1,即最左边的正方形方块(II)为黑色;第十位为条码终点,终点值为0,即最右边的正方形方块(II)为白色;实际有效编码为中间的八位;
定位与识别方法包括如下步骤:
步骤一:对条码进行轮廓检测,得到的轮廓如下:边框的外轮廓Cout和内轮廓Cin,n个黑色正方形方块的轮廓C1…Cn,n=1,…,9;
步骤二:计算外轮廓Cout的中心点坐标,即为条码的位置坐标,记为Oout;
步骤三:分别计算方块轮廓C1…Cn的中心点坐标,记为O1…On;
步骤四:分别计算中心点坐标O1…On与Oout之间的距离,寻找距离最大值,并将该中心点坐标Om所对应的第m个方块轮廓Cm记为条码的起点,m=1,...,n;
步骤五:根据剩余n-1个方块轮廓的中心点坐标到Om之间的距离,得到条码的编码;
步骤六:判断条码方向,根据条码起点的坐标Om和条码的坐标Oout,确定条码与水平或垂直方向的角度。
2.如权利要求1所述的条码的定位与识别方法,其特征在于:所述步骤一中,使用opencv中的findContours方法得到的条码的轮廓。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910321196.7A CN110046688B (zh) | 2019-04-19 | 2019-04-19 | 一种条码的定位与识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910321196.7A CN110046688B (zh) | 2019-04-19 | 2019-04-19 | 一种条码的定位与识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110046688A CN110046688A (zh) | 2019-07-23 |
CN110046688B true CN110046688B (zh) | 2022-04-19 |
Family
ID=67278099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910321196.7A Active CN110046688B (zh) | 2019-04-19 | 2019-04-19 | 一种条码的定位与识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110046688B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010088904A (ko) * | 2001-06-18 | 2001-09-29 | 김영진 | 원형 바코드와 3차원 바코드 |
CN101794404A (zh) * | 2010-03-09 | 2010-08-04 | 刘建生 | 隐形二维码的编码与识读方法 |
CN102915120A (zh) * | 2012-10-23 | 2013-02-06 | 华南理工大学 | 一种基于条形码识别原理的新型按键及方法 |
CN104915697A (zh) * | 2015-04-05 | 2015-09-16 | 江苏图码信息科技有限公司 | 一维数形图码信息技术 |
CN106295457A (zh) * | 2016-10-14 | 2017-01-04 | 常州信息职业技术学院 | 定位条码及其定位并识别的方法 |
-
2019
- 2019-04-19 CN CN201910321196.7A patent/CN110046688B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010088904A (ko) * | 2001-06-18 | 2001-09-29 | 김영진 | 원형 바코드와 3차원 바코드 |
CN101794404A (zh) * | 2010-03-09 | 2010-08-04 | 刘建生 | 隐形二维码的编码与识读方法 |
CN102915120A (zh) * | 2012-10-23 | 2013-02-06 | 华南理工大学 | 一种基于条形码识别原理的新型按键及方法 |
CN104915697A (zh) * | 2015-04-05 | 2015-09-16 | 江苏图码信息科技有限公司 | 一维数形图码信息技术 |
CN106295457A (zh) * | 2016-10-14 | 2017-01-04 | 常州信息职业技术学院 | 定位条码及其定位并识别的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110046688A (zh) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6604682B2 (en) | Method of and apparatus for reading a two-dimensional bar code symbol and data storage medium | |
AU2005331401B2 (en) | Information input/output method using dot pattern | |
CN100390807C (zh) | 一种易于全方位识别的三边形多维条码的识读方法 | |
KR101612700B1 (ko) | 매트릭스 qr코드 해독방법 | |
CN108573511B (zh) | 点状分布合作编码标志及其识别定位方法 | |
CN109215016B (zh) | 一种编码标志的识别定位方法 | |
US20050199721A1 (en) | 2D coding and decoding barcode and its method thereof | |
US9898637B2 (en) | Two-dimensional code | |
WO2017041600A1 (zh) | 一种汉信码特征图形检测方法及系统 | |
CN105046184A (zh) | 基于畸变图像校正的二维码解码方法和系统 | |
CN105894069B (zh) | 一种视觉导航用的crc二维码的生成方法及识别方法 | |
CN107247985B (zh) | 二维码的编码、定位及识别方法 | |
EP3561729B1 (en) | Method for detecting and recognising long-range high-density visual markers | |
CN113506276B (zh) | 一种测量结构位移的标志物及方法 | |
CN112184826B (zh) | 一种标定板和标定方法 | |
CN108073966A (zh) | 一种二维码与孔阵码的转换方法 | |
CN106228103B (zh) | 一种双层码的识别方法 | |
CN111241860A (zh) | 一种任意素材环形码的定位与解码方法 | |
CN111199163A (zh) | 一种环形码的边缘检测与定位识别方法 | |
CN110046688B (zh) | 一种条码的定位与识别方法 | |
CN105046256A (zh) | 基于畸变图像校正的qr码解码方法和系统 | |
KR101052403B1 (ko) | 2차원 바코드 및 그 코딩/디코딩 방법 | |
CN109635613B (zh) | 一种用于球体表面的二维码生成方法、系统及装置 | |
CN111191759A (zh) | 一种二维码的生成方法和基于gpu的定位、解码方法 | |
CN109934036B (zh) | 一种通过单一位置探测图形识读qr码的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |