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