使用as3.4搭建opencv安卓c开发环境
前言
最近做人脸检测识别时有个新需求需要做活体检测,在网上查来查去,说用opencv可以实现,暂时还没找到完整参照。但是opencv有个人脸特征点landmark检测,这个可能需要用到。先搭好安卓环境,看看情况
正文
开发环境搭建
这里有个参考文章:
https://www.jianshu.com/p/9f5758c36b34
注意里面,sdk的位置啊,.so的的名称啊,要跟你下载的一致,我用的opencv4.0版本
问题收集:
1.这时候可能会碰到一个问题:
opencv2标红,Mat标红。
其实cmakelist中引入了so后应该就可以了,这时候直接build->make project
2.接着碰到第二个问题:
提示Mat错误,是不是应该用cv::Mat
看到这个提示我就放心了,提示我用cv了,说明路子对了,将代码改为
继续build->make project,最后你会和我一样发现上面的标红都变正常了。run一下跑程序
3.第三个问题:java报错
No implementation found for int[] com.xxx.xxx.MainActivity.gray(int[], int, int)
出现这个问题有两个可能:
一是你的native方法名没有按规则来;这个没问题
二是没有打包到apk中,用之前说的分析包工具看看
一切正常
三是没有引用到,什么意思呢,其实as已经提示了,我的方法是暗色的,没有被引用到
最后发现是开头少了 extern “C”,加上后恢复正常
然后运行
小结
还好以前安卓还有点点印象,感谢大佬带路