RKmedia教学(zbar 二维码识别)

  • 介绍

要想更好的使用 1126/1109 的硬件资源就必须掌握一套媒体框架。此贴会已一个智慧金融的应用场景,介绍一下 RKmedia 的,VI 、VO、RGA 模块以及 zbar 的使用。应用功能:通过 RGB 摄像头识别二维码。

  • 代码

gitlab 仓库地址: https://gitlab.com/firefly-linux/app/firefly_rkmedia_demo

源码文件:firefly_rkmedia_demo/rkmedia_vi_zbar_test.c

  • 编译

1. 由于官方使用的是 buildroot 系统,所以你需要先编译一遍官方的 SDK,来构建依赖环境。下面是编译官方 SDK 的 WIKI 链接。https://wiki.t-firefly.com/zh_CN/CAM-C11262U/Source_code.html,注意,编译之前你需要打开 buildroot 的 zbar 支持,否则后续无法编译通过。需要找到自己的使用的 config 文件并且修改。

diff --git a/configs/firefly_rv1126_rv1109_uvcc_defconfig b/configs/firefly_rv1126_rv1109_uvcc_defconfig
index cbf9af861e..8cfb2980dc 100644
--- a/configs/firefly_rv1126_rv1109_uvcc_defconfig
+++ b/configs/firefly_rv1126_rv1109_uvcc_defconfig
@@ -124,3 +124,4 @@ BR2_PACKAGE_RKNPU_USE_RKNN_API=y
BR2_PACKAGE_RKNPU_USE_MINI_DRIVER=n

BR2_PACKAGE_ARCUVC=y
+BR2_PACKAGE_ZBAR=y

2. 编译完成后你会在 buildroot 仓库下找到文件系统编译依赖环境

 sdk/buildroot/output/firefly_rv1126_rv1109_facial_gate/host/arm-buildroot-linux-gnueabihf/sysroot/

3. 把 SDK 的绝对路径和依赖环境的相对路径填入 RKmedia 二维码识别仓库的 build.sh 文件中

# SDK 目录                                                                                                                                                                                                           
SDK_PATH="/home/daijh/daijhfs/daijh/p/rk-rv1109/gitlab_merge/"     
   
# 编译完 buildroot 后的 sysroot 目录     
sysroot="$SDK_PATH/buildroot/output/firefly_rv1126_rv1109_facial_gate/host/arm-buildroot-linux-gnueabihf/sysroot/"

4. 执行脚本编译,生成可执行文件 rkmedia_vi_zbar_test 

./build.sh rkmedia_vi_zbar_test.c

5. 设备升级你刚刚编译出来的固件,升级方法 WIKI 链接 https://wiki.t-firefly.com/zh_CN/CAM-C11262U/upgrade.html,然后把 rkmedia_vi_zbar_test 通过 adb push 到设备中,就可以运行了

adb push rkmedia_vi_zbar_test /

  

  • 效果

可以安装一个浏览器域名二维码生成插件,到任意网站生成二维码传到手机中。运行程序

./rkmedia_vi_zbar_test -a /oem/etc/iqfiles

  

然后把二维码放到摄像头前,打印信息就会识别出网站域名。

  • 源码分析

我会在源码上更新注释,也可以查看 WIKI RKmedia 讲解。https://wiki.t-firefly.com/zh_CN/CAM-C11262U/Rkmedia.html 。

原文地址:https://www.cnblogs.com/TeeFirefly/p/15001203.html