Android-图像识别项目OpenCV(4):开发思路以及问题
上一篇文章:Android-图像识别项目OpenCV(3):程序目标以及单独发布
六、开发思路
搭建好环境和做好各种准备功夫,接下来就开始我们的开发之路。
首先,我们先查看一下官方教程文档,看有没有我们需要的例子。我找到了一个二维图像识别的例子:
这个教程是用C++写的,用计算特征点来比对两幅图像。如果我们用这个算法可得到特征点的匹配:
这两幅图共有22个特征点,我们到时就可用多于多少个特征点便认为两幅图里的产品为同一个产品来判定了。
遇到问题
上面的代码例子是用C++写的,当我打算用JNI进行调用的时候,却发现了一个大问题。
例子中的步骤一用到SURF算法来识别图中的特征点:
//-- Step 1: Detect the keypoints using SURF Detector 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上收到了某位外国友人的答复,感谢他:
他提醒我用另外一个包含在Android SDK的类ORB来解决这个问题,我查了一下,确实有这个类,并且用法也是差不多的。另外,外国友人说这个类的运行效率在手机上还高一点。吐槽下,OpenCV4Android的支持确实差了一点,教程文档基本没有,基本上是靠硬啃API Reference来开发。
注:博客文章为本人原创,转载请标明出处为本人博客:http://www.cnblogs.com/TseChiHoi/。
一个人无梦想,同条咸鱼有咩分别?!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架