微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 学习LabVIEW(七)——ZXing.NET解码

学习LabVIEW(七)——ZXing.NET解码

时间:01-09 来源:互联网 点击:
这次用LabVIEW实现了对图像文件中的二维码的解码。解码引擎依然使用ZXing.NET。ZXing.NET的主页上给出了一个简单的解码的例子,我们就参考这个例子,实现了今天的LabVIEW程序。
为了实现解码,首先需要构造BarcodeReader类的实例,如之前在《学习LabVIEW(一)——调用ZXing.NET》中所述,使用“互连接口->.NET->构造器节点”即可。在“选择构造器”对话框中点击“浏览按钮”,在弹出的文件对话框中选中zxing.dll,和之前都是一样的。构造函数选择无参数的版本即可,如下图所示:


BarcodeReader在解码时需要传入一个代码了二维码图像的Bitmap对象。仍然使用构造器节点,构造System.Drawing.Bitmap,构造函数选择含有一个字符串参数的版本,字符串代表了图像文件的路径:


为了方便在程序运行的时候选择图像文件,在界面上添加了一个“文件路径输入控件”:


在控件中添加过滤器,只能选择PNG文件,具体做法是:右键单击控件,在弹出的菜单中选择“浏览选项...”,在弹出的对话框中添加过滤器:


接下来,在界面上添加“二维图片”和“字符串显示控件”,其中图片控件用于显示加载的图像,字符串显示控件用于输出解码的结果。这个界面如下图所示:


完整的程序框图如下:

程序的核心就是利用BarcodeReader的Decode方法对加载的图像进行解码。
  • 解码部分的最外层套了一个while循环(其实更像是repeat until False循环,因为退出循环的条件是True);
  • 循环内部是一个事件结构,触发事件为路径控件中的路径发生变化,即每次进行了路径选择之后,就会触发这个事件结构;
  • 事件结构内部有一个if结构。这里利用正则表达式对路径(路径和字符串不是兼容的类型,需要使用相应的节点进行显式的类型转换)进行判断,看路径是不是以.png结尾,如果是,则执行结构内部的框图;
  • 如果路径的确是以.png结尾,则调用BarcodeReader的Decode方法。这里使用了一个顺序结构,见《学习LabVIEW(三)——观念的转变》,保证Decode运行结束之后,在调用Bitmap对象的Dispose方法以释放资源。同时,将结果送至字符串显示控件,将解码结果呈现在用户界面上。
以上就是程序的基本流程。
运行效果:
首先我们用《学习LabVIEW(一)——调用ZXing.NET》中给出的程序,生成了一个二维码:


将生成的二维码截图,保存为PNG文件。
启动今天的程序,加载刚才保存的PNG文件,立刻得到了解码结果:

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top