我们以基于AWorks系统的M7系列平台为例,成功调用ZLG二维码算法之前,需要准备的工作如下:
保证能够获取到摄像头的视频帧数据(不同平台可以有不同的实现方式,linux系统可以通过opencv获取图像帧数据),并且转为单通道的灰度图。例如,基于AWorks系统的M7平台demo使用如下接口获取RGB565格式的图像。
由于获取到的图像为RGB565格式,需要转换为单通道灰度图,接口如下:
至此,准备工作已经完成,算法所需要的灰度图数据已经得到。接下来进行算法调用,二维码识别接口调用存在三个步骤。
首先,使用算法初始化接口实现内存的初始化操作:
接着,即可通过QR码解码接口实现二维码图像解码操作,指针 imgData指向的地址即为灰度图像存放的地址。
最后,释放初始化过程中分配的内存:
基于AWorks系统的M7平台调用二维码算法伪代码如下:
三、ZLG算法合作模式及平台支持
ZLG二维码算法可以以SDK包的形式免费开放给各位工程师,只需使用ZLG嵌入式核心板(硬件平台)即可快速开发出具备商用性能的二维码识别应用。算法原则上可以支持基于AWorks和Linux系统的所有硬件平台。目前,主要测试了基于AWorks系统的M7系列平台,及基于Linux系统的A7和A8系列平台的相关性能,并通过提供静态库或动态库的方式供使用。
各平台算法性能如下表:
四、效果展示
基于cortex-m7系列M1052-M16F128AWI -T平台的二维码识别demo配有4.3寸液晶显示屏, 以类似于手机扫码的体验,快速识别QR码,显示识别的结果。效果如下所示:
AWorks系统M7平台二维码算法demo.mp4
视频中分别展示了基于AWorks系统的cortex-m7硬件平台、普通连续扫码情形下的纸质和屏幕码识别、自动感应(通过感应到扫码操作来触发算法,屏幕亮暗用来模拟补光灯亮灭)扫码情形下的纸质和屏幕码识别,以及碎屏情况下的屏幕码识别。