1. 二维码识别简介
二维条码/QR码(二维条码)是用特定几何图形按照一定规则分布在平面(二维方向)上的黑白图形记录数据符号信息;在编码中,巧妙地利用构成计算机内部逻辑基础的“0”和“1”比特流的概念,用若干二进制和相应的几何形状来表示文本数字信息,并通过图像输入设备或光电扫描设备自动读取它们,实现自动信息处理:它具有条码技术的一些共同特点:每种编码系统都有其特定的字符集;每个字符占据一定的宽度;具有一定的验证功能等,同时还具有自动识别不同线条信息和处理图形旋转变化点的功能。
2. 快速上手
2.1 开发环境准备
如果您初次阅读此文档,请阅读《入门指南/开发环境准备/Easy-Eai编译环境准备与更新》 并按照其相关操作进行编译环境的部署。
在PC上的Ubuntu系统中执行run脚本,进入EASY-EAI编译环境,如下图。
cd ~/develop_environment ./run.sh 2204
2.2 源码下载
创建EASY-EAI编译环境中存放源码仓库的管理目录:
cd /opt mkdir EASY-EAI-工具包cd EASY-EAI-工具包
使用git工具将远程仓库克隆到管理目录下
git克隆https://github.com/EASY-EAI/EASY-EAI-Toolkit-1126B.git
注:
* 由于网络原因,这里可能会有延迟,请耐心等待。
* 如果确实要从gitHub网页下载,还必须下载整个仓库。您无法单独下载该实例对应的目录。
2.3 例程编译
进入对应的例程目录进行编译操作。具体命令如下:
cd EASY-EAI-Toolkit-1126B/Demos/algorithm-qrdecode/./build.sh cpres
注意:
* 由于板子上部署了依赖库,交叉编译过程中必须保持挂载/mnt。
* 如果build.sh脚本带有cpres参数,则Release/目录下的所有资源都会被复制到开发板中。
2.4 例程运行及效果
通过串口调试或者ssh调试,进入板子后台,找到例程部署的位置,如下图:
cd /userdata/Demo/算法-qrdecode/
运行例程命令如下:
./test-qrdecode EASY-EAI-QRcode.png
可以在EASY-EAI 编译环境中检索测试图像:
cp /mnt/userdata/Demo/algorithm-qrdecode/result.jpg 。
结果图如下:
同样的程序还可以识别一维码图像:
sudo ./test-qrdecode 1-code.png
可以在EASY-EAI 编译环境中检索测试图像:
cp /mnt/userdata/Demo/algorithm-qrdecode/result.jpg 。
结果图如下:
API及API调用详细说明(本例程源码)。有关详细信息,请参阅下面的描述。
3. 二维码识别API说明
3.1 引用方式
为了方便客户在本地项目中直接调用我们的EASY EAI api库,这里列出了项目中需要链接的库和头文件,以便用户直接添加。
3.2 二维码识别运行函数
二维码识别运行功能原型如下。
int qr_decode(cv:Mat src, struct qrcode_info *p_info)
具体介绍如下。
4. 二维码识别算法例程
例程目录为Demos/algorithm-qrdecode/test-qrdecode.cpp。操作流程如下。
参考例程如下所示。
#include #include #include #include 'qrdecode.h' 使用命名空间cv; int main(int argc, char **argv) { if( argc !=2) { printf('./test-qrdecode xxx\n');返回-1; } 结构timeval 开始;结构体timeval 结束;浮动时间_使用=0;垫子图像;图像=cv:imread(argv[1], 1); gettimeofday(开始,NULL);结构体qrcode_info 信息; qr_decode(图像,信息); gettimeofday(结束,NULL); time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒printf('time_use is %f\n',time_use/1000); printf('x1:%d\n', info.x1); printf('x2:%d\n', info.x2); printf('y1:%d\n', info.y1); printf('y2:%d\n', info.y2); printf('type:%s\n', info.type); printf('result:%s\n', info.result);矩形(图像, 点(info.x1, 信息.y1), 点(info.x2, 信息.y2), 标量(0, 255, 0), 3); imwrite('结果.jpg', 图像);返回0; }
标题:瑞芯微(EASY EAI)RV1126B 二维码识别
链接:https://yqqlyw.com/news/sypc/70573.html
版权:文章转载自网络,如有侵权,请联系删除!