如何扫描条形码获取信息-如何扫描条码来获取商品信息

在使用条码生成软件生成条码的时候,我们经常会遇到客户问这样的问题,用你们软件生成的条码用手机或者扫描枪能不能扫描出商品信息,如:名称如何扫描条形码获取信息、单价、产地、规格等?这不是简单的能或者不能就可以解释清楚的。为了帮助更多的朋友了解这个问题,今天给大家解释下条码本身携带的信息与扫描信息之间的问题。

如何扫描条形码获取信息-如何扫描条码来获取商品信息

条码有一维码、二维码之分。一维码就是我们就是商品外包装的条码,它支持数字、字母、符号等,不支持中文,最多支持48个字符。二维码支持文字、数字、网址、符号以及中文,它比一维码的信息容量约高几十倍。条码生成软件生成的条形码识别率可达A级。所以它能被任何扫描设备识别。如手机、扫描枪等等。关于扫描的内容,一般输入的是什么信息,扫描出来就是什么信息。如图:

当我们扫描条形码的时候,往往显示的是一组数字或者字母。

扫描二维码时比较丰富,有数字、字母、文字、网址等等。

有的客户就问了,我们购买的商品上贴的条形码,扫描就可以显示很多的文字信息,为什么我制作的条码,就不能显示呢?这就是商品条码的查询问题了。

如果你制作的条码,想要让消费者通过扫描,显示一些信息的话,需要向物品编码中心申请备案,如果备案通过,会给你分配一个条码段,你在条码段范围内编码,编码之后将数据上传到指定的产品服务平台上,再借助条码生成软件生成对应的条形码,生成之后就可以扫描出来了。如果没有备案,你在软件中输入的是什么内容,显示的就是什么内容。

有的客户就说了,他们不向物品编码中心申请备案,只是内部使用,想要扫描条码显示一些商品信息。问还有没有其他方法可以实现。如果是内部使用的话,看他们内部有没有相关数据管理软件,可以根据自己的需求编写,如商品录入、商品查询等,将商品信息录入到管理软件中,最后扫描条码就可以在管理软件查询到相应的信息。条码和数据库之间可以用扫描枪进行连接。

使用Python和OpenMV读取条形码

如何扫描条形码获取信息-如何扫描条码来获取商品信息

在今天的文章中,将会教你如何利用OpenMV以及他们的高级IDE建立自己的条形码扫描系统。

如何扫描条形码获取信息-如何扫描条码来获取商品信息

使用Python和OpenMV读取条形码

如何扫描条形码获取信息-如何扫描条码来获取商品信息

如何扫描条形码获取信息-如何扫描条码来获取商品信息

图1:OpenMV可以在许多类型的代码中读取二维码

如何扫描条形码获取信息-如何扫描条码来获取商品信息

在当今社会,条形码随处可见。

如何扫描条形码获取信息-如何扫描条码来获取商品信息

你收到的每一件商品或亚马逊包裹上都有条形码。每当你登上飞机或租车时,就会使用条形码。医院腕带上的条形码与你的身份有关。

如何扫描条形码获取信息-如何扫描条码来获取商品信息

条形码是计算机将一个项目与数据库关联起来的一种简单方法。因此,必须正确解码条形码,以便更新数据库。

如何扫描条形码获取信息-如何扫描条码来获取商品信息

典型的条形码阅读器使用光电池来“查看”代码。如果想了解更多可以看看Chris Woodford的文章:条形码和条形码扫描仪。

如何扫描条形码获取信息-如何扫描条码来获取商品信息

文章地址:/barcodescanners.html

如何扫描条形码获取信息-如何扫描条码来获取商品信息

考虑到当今时代相机的重要性,我们可以使用图像处理来检测和解码条形码。

如何扫描条形码获取信息-如何扫描条码来获取商品信息

在PyImageSearch上的一篇文章中,我演示了如何用Python和OpenCV检测条形码。

如何扫描条形码获取信息-如何扫描条码来获取商品信息

如何用Python和OpenCV检测条形码文章地址::///2014/11/24/detecting-barcodes-images-python-opencv/

如何扫描条形码获取信息-如何扫描条码来获取商品信息

检测是一个难题,另一件是将条形码解码成有用的字符串。不幸的是,OpenCV不包含内置的条形码检测+阅读功能…

如何扫描条形码获取信息-如何扫描条码来获取商品信息

但有一些流行的库条形码检测,其中一个是ZBar。使用ZBar和其他类似的条形码阅读库是完成任务的一种方法。另一种选择是使用嵌入式工具和库,比如OpenMV。

如何扫描条形码获取信息-如何扫描条码来获取商品信息

事实上,OpenMV使得检测和阅读条形码变得非常容易:

如何扫描条形码获取信息-如何扫描条码来获取商品信息

构建自己的条形码扫描设备。

如何扫描条形码获取信息-如何扫描条码来获取商品信息

在装配线上建立自动化零件检验系统。

利用OpenMV在一个感兴趣项目中帮助你扫描和组织车间的组件和外部设备。

使用OpenMV教中学或高中生关于嵌入式编程的知识。

用OpenMV和Python进行条形码检测和解码

安装OpenMV IDE后启动它。我们将在OpenMV IDE中完成所有的编码工作。

让我们首先创建一个名为openmv_barcode.py 的文件。

在第2-4行,我们导入所需的MicroPython/OpenMV包。

如果你想使用LCD shield,可以在第9行导入需要的lcd包。

接下来,让我们设置摄像机传感器:

第12-29行的设置不需要解释,请阅读代码和注释。

我想指出的是, LCD需要一个符合屏幕的分辨率。(sensor.QQVGA2 )。

注意:我试着弄清楚如何使用全分辨率,然后制作一个适合于LCD的缩放图像,但是没有成功。正因为如此,如果你选择使用LCD,你就要尝试解码低分辨率的条形码。LCD仍然是一个很好的调试工具,我想把它包括进去,这样你就可以很容易的使用它。

我还想指出第27行。在“hello world”示例中,你将看到sensor.skip_frames的一个关键字引数time=2000。在此上下文中不支持关键字引数,所以一定要使用第27行所示的语法(尤其是通过“hello world”运行时)。

接下来,让我们来执行初始化:

如果你使用的是LCD,需要取消第33行。

第36行初始化了FPS计算的计时器。

从这里我们将创建(1)查找表和(2)确定条形码类型的方便(convenience function)函数:

正如在第39行中看到的,在这里我定义了一个barcode_type字典,OpenMV可以检测和解码很多不同的条形码样式。

第57-63行定义了获取条形码类型的方便函数,而不会引起Python密钥异常(OpenMV不能很好地处理异常)。

我们将从开始一个while循环开始获取和处理帧:

第一步是为FPS计数器计时(第68行)。

在第71行获取sensor.snapshot框架。

我们有一个图像,让我们看看能做些什么

我们在这里找到标准的非QR码。我们所需要做的就是调用img.find_barcodes (封装了所有条形码检测+读取功能)并循环显示结果(第74行)。

鉴于检测到的条形码,我们可以:

围绕检测到的条形码绘制边框矩形(第76行)。

输出类型,质量和有效载荷(第79-82行)。

在屏幕上绘制字符串(第85行)。根据文档目前没有办法用较大的字体绘制字符串。

文档地址:/library/omv.image.html?highlight=draw_string#image.image.draw_string

QR码解码以类似的方式完成:

此循环模仿标准条形码循环,因此请务必查看详细信息。

在循环之外,如果使用LCD,你需要在其上进行显示(第100行)。

最后,在第103行,我们可以在终端上轻松输出FPS(每秒帧数)。

OpenMV条形码解码结果

图3:OpenMV团队为计算机视觉开发设计了一个很棒的IDE。这是在第一次打开IDE并加载程序时所看到的。

首先,通过USB将OpenMV摄像头连接到电脑。

然后启动IDE,如图3所示。

从那里,点击左下角的连接按钮。

IDE可能会提示更新固件(通过点击按钮并等待大约3-5分钟)。

当你准备好在编辑器中加载程序时,请点击左下方的绿色播放/程序按钮。这个按钮将用你的代码设置OpenMV。

MicroPython代码需要大约45-90秒才能编译成机器代码并在处理器上闪存。

不久之后,如果输出到终端上,你将看到诸如FPS或条形码信息等数据 – 这是正常工作所需要的。你还会在右上方的取景器中看到来自相机传感器的实时视图。

现在我们来试一下条形码吧!

以下是我们正在处理的内容:

图4:使用OpenMV摄像机测试样例条形码。包括QR, CODE128, CODE93, CODE39和DATABAR条形码图像。

可以从IDE的内置终端中查看结果:

每段代码和终端的截屏如下:

图5:通过链接到PyImageSearch主页扫描QR码。

图6:扫描包含“://openmv.io”有效载荷的QR码 – OpenMV主页。

图7:这个二维码包含了一个有效载荷,可以引导你使用Python图书信息页面进行计算机视觉的深度学习。

图8:一个代号为“guru”的CODE128条形码由OpenMV解码。

图9:OpenMV可以解码CODE93条形码,例如具有“OpenMV”有效载荷的条形码。

图10:CODE39条形码很容易被OpenMV解码。这里的有效载荷是“DL4CV”。

图11:OpenMV可以解码固定宽度且只包含数字的DATABAR代码。我在此条形码中编码了“2018”,但正如你所看到的,OpenMV相机实际上可以读取16个字符。

最后是IDE的实际情况。 注意它如何读取多个代码,在条形码周围绘制边框,并包含颜色直方图的。

图12:OpenMV正在检测条形码并将结果打印到IDE。正如你所看到的,左下方有一个滚动数据的终端。IDE的右上角还有一个实时查看摄像头视频,右下角是颜色直方图。

下面是使用IDE系统的视频:

视频加载中…

IDE非常适合调试。但是,对于可部署项目,你不应该使用IDE。你可以通过I2C,SPI或WiFi将条形码有效载荷发送给执行器,以便在数据库中进行处理。

这里是LCD的实际操作:

图13:OpenMV彩色LCD屏蔽为OpenMV提供了一个很好的取景器。

总结

在这篇文章中,我们使用OpenMV来执行条形码解码。

旨在成为“机器视觉的开源硬件”,OpenMV cam是嵌入式的(无操作系统),并可通过多种可用 shields进行扩展。它也非常易于使用。你可以使用MicroPython在OpenMV上编写代码。

但是,了解OpenMV不运行OpenCV很重要,处理器根本无法处理它。 也就是说,内置了许多类似于OpenCV的功能。使用OpenMV IDE,你可以将自己的计算机视觉应用程序组合在一起。

本文来自网络,不代表唯米智能立场,转载请注明出处。如有侵权请联系删除。http://www.weiseo.cc/b/3085.html

作者: 小易

上一篇
下一篇
联系我们

联系我们

在线咨询: QQ交谈

邮箱: 2013723@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部
在线客服系统