m域名网站安全吗,wordpress文章全显示,免费服务器网址,电信开放81端口怎样做网站介绍
本车牌识别项目是基于开源项目 EasyPR#xff08;Easy to do Plate Recognition#xff09;实现。EasyPR 是一个开源的中文车牌识别系统#xff0c;基于 OpenCV 开源库开发。
本项目使用润和 HiSpark Taurus AI Camera(Hi3516DV300) 摄像头开发板套件(以下简称 Hi351…介绍
本车牌识别项目是基于开源项目 EasyPREasy to do Plate Recognition实现。EasyPR 是一个开源的中文车牌识别系统基于 OpenCV 开源库开发。
本项目使用润和 HiSpark Taurus AI Camera(Hi3516DV300) 摄像头开发板套件(以下简称 Hi3516)实现拍照车牌并显示识别结果。采用的系统是 OpenAtom OpenHarmony (简称“OpenHarmony”) 3.1 Release 小型系统。
首先将 Hi3516 中的摄像头对准车牌其距离约为 60cm~70cm 如下所示 运行程序后按下 1 拍照、按 2 输出识别结果如下所示 开发流程
本车牌识别项目使用 OpenHarmony 中的媒体子系统实现。
代码基于停车场景下的本地车牌识别。进行讲解其代码结构如下
三方库移植
EasyPR 实现是基于 OpenCV 实现因此实现 EasyPR 首先得移植 OpenCV。移植的方式采用 Gn 调用 Shell 脚本Shell 脚本调用 Makefile 实现。
├── BUILD.gn
├── include
│ ├── camera.h // 摄像头定义
│ ├── local_net_communication.h // 设备协同主要功能定义
│ ├── local_net_def.h // 设备协同打印日志
│ ├── local_net_dlist.h // 设备协同设备列表定义
│ ├── local_net_message.h // 设备协同传输消息定义
│ ├── local_net_udp.h // 设备协同udp协议定义
│ ├── local_net_utils.h // 设备协同通用工具定义
│ ├── log.h // 打印日志定义
│ └── wpa_work.h // wifi设置定义
└── src├── base64.cpp // 图片转base64格式功能代码 ├── camera.cpp // 摄像头实现├── local_net_communication.c // 设备协同主要功能实现├── local_net_dlist.c // 设备协同设备列表实现├── local_net_message.c // 设备协同传输消息实现├── local_net_udp.c // 设备协同udp协议实现├── local_net_utils.c // 设备协同通用工具实现├── main.cpp // 主程序└── wpa_work.c // wifi设置实现下面介绍移植的大致流程具体细节可参考小型系统上运行开源项目车牌识别及移植 opencv 库。
移植OpenCV
下载源码
获取源码将 OpenCV 库源码放在 OpenHarmony 根目录下的 third_party 下
生成Makefile
在 OpenCV 源码根目录新建 build 目录生成 Makefile 文件
使用 cmake-gui 来配置编译环境
cd build
make-gui ..显示的 UI 界面如下图 点击 Configure 进行配置选择第四个选项进行配置如下图
配置工具链
点击 Generate 生成 Makefile。
**创建 Shell 脚本 **
在 OpenCV 源码根目录新增 build_opencv.sh
touch build_opencv.sh
chmod 777 build_opencv.sh
vim build_opencv.sh
##添加如下内容
#!/bin/sh
processorcat /proc/cpuinfo|grep processor | sort -u | wc -l
cd build
make -j$processor
cp lib/* $1/libs/
创建Gn文件
在 OpenCV 源码根目录新增 BUILD.gn 将 OpenCV 库加入编译构建
移植EasyPR
下载源码
获取源码 EasyPR 库源码放在源码根目录下的 third_party 下
生成Makefile
在 EasyPr 源码根目录新建 build 目录
mkdir build
cd build
cmake-gui ..显示的 UI 界面如下图 点击 Configure 进行配置选择第四个选项进行配置如下图
配置工具链
点击 Generate 生成 Makefile。
创建Shell脚本
在 EasyPR 源码根目录新增 build_easypr.sh
创建Gn文件
在 EasyPR 源码根目录新增 BUILD.gn 加入至编译构建
vim BUILD.gn#BUILD.gn中添加如下内容
import(//build/lite/config/component/lite_component.gni)
import(//build/lite/ndk/ndk.gni)root_build rebase_path(root_build_dir)build_ext_component(easypr_lib) {command sh build_easypr.sh $root_buildexec_path $root_build/../../../third_party/EasyPR
}lite_component(easypr) {deps [//third_party/opencv:opencv,:easypr_lib]features []
}最终 OpenCV 与 EasyPR 在 third_party 目录如下图所示 在 OpenHarmony 实现 EasyPR 需要主要分为如下三步
GN 构建将 EasyPR 加入编译构建拍照调用 OpenHarmony 拍照接口拍摄车牌EasyPR 本地识别调用 EasyPR 识别车牌接口并返回识别结果。
GN构建
GN 构建中包含了 EasyPR 的头文件路径 、链接 EasyPR 动态库、编译依赖 EasyPR。如下所示 拍照
拍照功能是基于官方文档拍照开发指导开发的其 demo 样例在如下目录 在停车场景中二维码识别与车牌识别共用同一份拍照代码 为提高二维码识别率在拍照初始化时须将分辨率设置为 1280*720。该改动在进行车牌识别时不会影响 初始化拍照代码如下图
设置照片保存路径在文件 camera.h 下
因为在停车场景中二维码扫码与车牌识别都会调用拍照接口因此使用 s_runAi 作区分
int main(int argc,char **argv)
{int ret;char licensePlate[32] {0};char input;InitCamera();PlateInit();while(cin input) {switch (input) {case 1:RunAICamera(); // 拍照break;case 2:memset(licensePlate, 0, sizeof(licensePlate));ret GetPlateString(IMG_PATH, licensePlate); // 识别车牌SAMPLE_INFO(ret - %d, licensePlate-%s, ret, licensePlate);break;case s:PlateDeinit();ExitCamera();return 0;default:SAMPLE_ERROR(input Error);break;}}return 0;
}进行拍照后会进入拍照数据处理当 s_runAi 为 false 说明是二维码识别直接调用二维码识别接口即可。当 s_runAi 为 true 时须将拍照的数据保存为图片 将拍照数据以图片保存路径为“/sdcard/CaptureAi.jpg” 。
EasyPR本地识别
编写主程序 main.cpp 设置程序功能为按 1 拍照、按 2 显示结果
编译烧录
前文大致概括了 OpenCV 和 EasyPR 的移植步骤更详细的关于环境搭建、烧录以及项目源码构建的步骤请查看参考文章本地车牌识别。
为了能让大家更好的学习鸿蒙HarmonyOS NEXT开发技术这边特意整理了《鸿蒙开发学习手册》共计890页希望对大家有所帮助https://qr21.cn/FV7h05
《鸿蒙开发学习手册》
如何快速入门https://qr21.cn/FV7h05
基本概念构建第一个ArkTS应用…… 开发基础知识https://qr21.cn/FV7h05
应用基础知识配置文件应用数据管理应用安全管理应用隐私保护三方应用调用管控机制资源分类与访问学习ArkTS语言…… 基于ArkTS 开发https://qr21.cn/FV7h05
Ability开发UI开发公共事件与通知窗口管理媒体安全网络与链接电话服务数据管理后台任务(Background Task)管理设备管理设备使用信息统计DFX国际化开发折叠屏系列…… 鸿蒙开发面试真题含参考答案https://qr18.cn/F781PH 鸿蒙开发面试大盘集篇共计319页https://qr18.cn/F781PH
1.项目开发必备面试题 2.性能优化方向 3.架构方向 4.鸿蒙开发系统底层方向 5.鸿蒙音视频开发方向 6.鸿蒙车载开发方向 7.鸿蒙南向开发方向