- 介绍
要想更好的使用 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 。