首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用NDK为Android编译OpenALPR

用NDK为Android编译OpenALPR
EN

Stack Overflow用户
提问于 2014-01-23 13:30:27
回答 4查看 5.8K关注 0票数 4

是否有方法使用NDK (Ndk)为Android编译库OpenALPR (https://github.com/openalpr/openalpr)?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-07-31 10:00:37

这是为android编译库的指南:

为Android设备编译OpenALPR教程

步骤0

  • 下载并部署android
  • 创建一个指向android根文件夹的符号链接到/opt。

第一步

  • 下载并安装OpenCV for Android (http://opencv.org/platforms/android.html) (只需遵循OpenCV团队提供的教程)

第二步

第三步

  • 下载并安装Android项目( CMake项目,https://code.google.com/p/android-cmake/),您最终应该会有一个生成android的工具链。如果要选择使用哪个编译器,我建议使用gcc4.6,因为我没有使用指向gcc4.8编译器的工具链来编译OpenALPR .
  • 在/opt中创建一个指向PATH_TO_ANDROID_TOOLCHAIN文件夹的符号链接(即: sudo -s PATH_TO_ANDROID_TOOLCHAIN/opt/PATH_TO_ANDROID_TOOLCHAIN)。(安卓工具链文件夹是在部署Android CMake项目期间生成的!)

第四步

代码语言:javascript
复制
- Replace this line : SET(OpenCV\_DIR "${CMAKE\_SOURCE\_DIR}/../libraries/opencv/")
- with : SET(OpenCV\_DIR "path\_to\_OpenCV4Android/sdk/native/jni")

然后注释生成alprd的部分(或者只是删除它):

在基于Unix的操作系统上编译alprd库

IF (非WIN32) ADD_EXECUTABLE( alprd daemon.cpp videobuffer.cpp守护进程/beanstalk.c守护进程/beanstalk.cc守护进程/uuid.cpp)

TARGET_LINK_LIBRARIES(alprd支持uuid curl log4cplus ${OpenCV_LIBS} ${Tesseract_LIBS} )

  • 开放CMake
  • 将源代码指向openalpr-master/src目录
  • 将构建路径指向openalpr-master/build目录
  • 按“配置”按钮
  • 选择"Unix Makefiles“(默认)并选择”指定交叉编译的工具链“,然后单击"Next”。
  • 指定要使用的工具链文件:如果您完成了步骤3,它应该位于$ANDROID_CMAKE/toolchain/android.toolchain.cmake下面(确保用相应的绝对路径替换$ANDROID_CMAKE )
  • 点击完成

不应该有任何错误但是一些警告..。没问题的

  • 按生成

第五步

  • 转到build目录并编辑这个文件: misc_utilities/CMakeFiles/benchmark.dir/link.txt : remove -lpthread选项(应该只有一行类似的代码)。保存并退出。
  • 打开文件资源管理器并转到path_to_tess-two/tess-two/jni/com_googlecode_tesseract_android/src
  • 现在搜索每个头文件(按下搜索按钮并键入".h“)
  • 将每个头文件复制并粘贴到openalpr-master/src/openalpr/tesseract (应首先创建此目录)
  • 在openalpr (mkdir -p库/tesseract-ocr/api/..libs)的根路径中创建这些目录“库/tesseract-ocr/api/..libs”
  • 复制并粘贴path_to_tess-two/tess-two/libs/armeabi-v7a/libtess.so到openalpr-master/libraries/tesseract-ocr/api/.libs/libtesseract.so (确保将其从libtess.so重命名为libtesseract.so !)
  • 打开终端并转到build文件夹(openalpr/build)
  • 做“做”

一切都要顺利进行。您可以在openalpr-master/src/libs/armeabi-v7a中找到alpr库。

仅此而已,让我知道你的成功和失败,我会尽我所能帮助你

票数 11
EN

Stack Overflow用户

发布于 2014-06-19 14:34:46

如果您仍在寻求实现这一目标,下面是我在安卓设备上使用OpenAlpr所遵循的步骤:

我在Windows8.1和Ubuntu13.10/14.04上试过,两者都工作得很好

这些是构建库的主要步骤,您还需要编写一个Android.mk文件来使用这个库。

如果你感兴趣(或其他人),请告诉我,我会一步一步地写一篇正确的教程

票数 3
EN

Stack Overflow用户

发布于 2014-01-31 01:12:29

是的应该是可能的。您需要先获得安卓版本的OpenCV和Tesseract安装程序。但一旦做到这一点,OpenALPR就应该在Android下进行干净的编译。

不过,我怀疑在手机上的表现不会很好。车牌识别是一个计算密集型的过程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21309592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档