六、开发思路
搭建好环境和做好各种准备功夫,接下来就开始我们的开发之路。
首先,我们先查看一下官方教程文档,看有没有我们需要的例子。我找到了一个二维图像识别的例子:
http://docs.opencv.org/doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.html#feature-flann-matcher
这个教程是用C++写的,用计算特征点来比对两幅图像。如果我们用这个算法可得到特征点的匹配:
这两幅图共有22个特征点,我们到时就可用多于多少个特征点便认为两幅图里的产品为同一个产品来判定了。
遇到问题
上面的代码例子是用C++写的,当我打算用JNI进行调用的时候,却发现了一个大问题。
例子中的步骤一用到SURF算法来识别图中的特征点:
int minHessian
= 400;
SurfFeatureDetector
detector( minHessian );
std::vector<KeyPoint>
keypoints_1, keypoints_2;
detector.detect(
img_1, keypoints_1 );
detector.detect(
img_2, keypoints_2 );
|
但是,在Android SDK的JNI库文件里面是不包含SURF算法的。在之后的两天里,我Google了无数个关键词,还是找不到如何在Android中使用这个算法的方法。后来,我在官方论坛、Google groups和StackOverflow上都进行了提问。
解决方法
在发出问题的第二天,我在StackOverflow上收到了某位外国友人的答复,感谢他:
http://stackoverflow.com/questions/12929709/how-to-use-the-opencv-c-specific-sample-on-the-android-platform
他提醒我用另外一个包含在Android SDK的类ORB来解决这个问题,我查了一下,确实有这个类,并且用法也是差不多的。另外,外国友人说这个类的运行效率在手机上还高一点。吐槽下,OpenCV4Android的支持确实差了一点,教程文档基本没有,基本上是靠硬啃API Reference来开发。
注:博客文章为本人原创,转载请标明出处为本人博客:http://www.cnblogs.com/TseChiHoi/。
分享到:
相关推荐
1.android 版的opencv-4.5.5 sdk; 2.含有opencv-contrib-4.5.5 扩展模块; 3.可以在android studio 中加载,通过java 层调用,也可以添加so库+头文件的方式在jni 层调用; 4.适用于arm64-v8a架构,即64bit cpu。
OpenCV-Python图像透视变换处理:魔变车牌案例.rar
计算机视觉项目课设:android人脸识别项目 使用opencv作为基础图像处理框架 计算机视觉项目课设:android人脸识别项目 使用opencv作为基础图像处理框架 计算机视觉项目课设:android人脸识别项目 使用opencv作为基础...
opencv-4.6.0-android-sdk.zip
opencv-3.4.4-android-sdk/sdk/build.gradle opencv-3.4.4-android-sdk/sdk/etc opencv-3.4.4-android-sdk/sdk/java
opencv-3.3.0-android-sdk,opencv库,用于opencv开发,包含apk,代码文件,库
opencv-3.4.13-android-sdk .zip压缩包
opencv-4.4.0-android-sdk.zip opencv Android版官网下载 压缩文件两百多兆 大小。
unity3d插件 脚本 图像识别 OpenCV for Unity3D 2.0.5 OpenCV3.1 支持unity5.0以上
opencv-4.5.4-android-sdk .zip
最新release的opencv 4.5.0 android sdk, 有需要的同学可以下载了。最新release的opencv 4.5.0 android sdk。
音视频资料-图像仿射变换原理5:组合变换矩阵的OpenCV-Python实现.rar
这是 OpenCV 4.9.0 版本的 Android SDK,适用于 Android 平台的开发者。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,包含了超过2500种优化的算法。这个 SDK 包含了所有...
https://www.pyimagesearch.com/2018/07/19/opencv-tutorial-a-guide-to-learn-opencv/ 代码
opencv官方release版本使用ndk较老,ndk版本要小于16才能使用,因此特意使用新的ndk编译提供给大家
Qt-5-和OpenCV-4-计算机视觉项目:Qt 5和OpenCV 4计算机视觉项目,由Packt发布
1.android 版的opencv-4.5.5 sdk; 2.含有opencv-contrib-4.5.5 扩展模块; 3.可以在android studio 中加载,通过java 层调用,也可以添加so库+头文件的方式在jni 层调用; 4.适用于armeabi-v7a架构,即32bit cpu。
最新opencv-4.1.0-android-sdk(截止到2019-4-28日)工具。
毕业设计 - 基于树莓派、OpenCV及Python语言的人脸识别 毕业设计 - 基于树莓派、OpenCV及Python语言的人脸识别 毕业设计 - 基于树莓派、OpenCV及Python语言的人脸识别 毕业设计 - 基于树莓派、OpenCV及Python语言的...
为了解决官网下载OpenCV比较慢,...opencv-4.8.0-android-sdk.zip : Android下的包 opencv-4.8.0.zip : openCV的源码 具体openCV的使用,可以看我的博客 : https://blog.csdn.net/EthanCo/article/details/131911635