车牌识别库 (Android 版本)。
首先感谢 北京智云视图科技有限公司 开源这么实用的软件,感谢 Aleyn 提供使用文档和 android 的工程。
本项目在原来的基础之上做了如下改进:
-
- 增加 arm64-v8a 支持。
-
- 升级 OpenCV SDK 到 4.40。
-
- 升级 NDK 到 r20b(否则与 AWTK 不兼容)。
-
- 修复第二次进去 getDisplay() 返回 null,导致奔溃的问题。
本项目主要配合 awtk-mobile-plugins 中的车牌识别插件 (lpr) 使用。使用方法如下:
以下方法建立在读者知道 awtk-android 的使用方法,并已经建立好 awtk-android 需要的开发环境基础之上。
将 awtk-lpr-android 取到与 awtk-android 同级的目录。
git clone https://hub.fastgit.org/zlgopen/awtk-lpr-android.git
cd awtk-android
#请先修改脚本文件中的路径
source scripts/env_win.sh
python create_project.py ../awtk-mobile-plugins/lpr_build.json
请确保本地 awtk-mobile-plugins 是最新的。
创建好项目之后,需要修改两处配置,先进入 lprdemo 目录:
cd build/lprdemo
- 3.1 修改 settings.gradle
在文件最后增加如下代码:
include ':app'
include ':openCV'
project(':openCV').projectDir = new File(settingsDir, '../../../awtk-lpr-android/opencv440/sdk')
include ':ocr'
project(':ocr').projectDir = new File(settingsDir, '../../../awtk-lpr-android/ocr')
- 3.2 修改 build.gradle
在文件最后增加如下代码:
ext {
android = [
compileSdkVersion: 29,
applicationId : "com.pcl.lpr",
minSdkVersion : 21,
targetSdkVersion : 29,
versionCode : 1,
versionName : "1.0",
]
}
- 编译
./gradlew build
- 安装
adb install -r ./app/build/outputs/apk/debug/app-debug.apk
- 如果设备没有"返回"按钮,可以用下面的 patch 添加"返回"按钮。
使用方法(在 bash 下运行):
patch -p1 <patch_add_back/add_back_button.diff
- 如果需要进入全屏可以修改LPRActivity.java的onCreate函数,加入下面的代码:
WindowManager.LayoutParams attrs = this.getWindow().getAttributes();
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
this.getWindow().setAttributes(attrs);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WindowManager.LayoutParams attrs = this.getWindow().getAttributes();
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
this.getWindow().setAttributes(attrs);
setContentView(R.layout.activity_lpr);
scannerView = findViewById(R.id.scanner_view);
this.closeButton = (Button)this.findViewById(R.id.close);
this.closeButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
startCamera();
}
Demo 地址: LPR
打开项目肯定会报编译错误,要做以下修改:
- 用 AS 打开项目
- 设置项目 NDK 为 NDK-r14b
- 先修改 CMakeLists.txt 文件, 把第 19 行修改成你本地的 OpenCV SDK 的对应路径。
- 跟据自己的开发平台,设置 ocr 下的 build.gradle 第 18 行代码 是否要注释。 完成以上步骤后再运行项目,就没有问题了。
- 更改了取景框适配问题
- 更改成 AndroidX,使用了 Google 的 CamreaX 来做相机预览
- 分离出 ocr Module ,为了方便其他项目导入识别功能