首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习《实时Opencv处理后的Camera图像Android NDK方法》笔记

学习《实时Opencv处理后的Camera图像Android NDK方法》笔记

作者头像
Vaccae
发布2019-07-25 11:43:42
1.5K0
发布2019-07-25 11:43:42
举报
文章被收录于专栏:微卡智享微卡智享

前言

前面文章《OpenCV4Android中NDK开发(一)--- OpenCV4.1.0环境搭建》自己配置好了NDK的Opencv方法,因为在Android中使用最常见的还是摄像头实时处理,所以最近一直在研究摄像头和OpenCV之间的互助。

早些的文章《OpenCV简介与Android SDK环境》有介绍过加载OpenCV的模块直接用OpenCV中的摄像头,但是决定使用NDK方式就不想再进行模块导入加上NDK的方式了,在网上找了好久终于找到一篇《实时显示 Opencv处理后的Camera图像 AndroidStudio NDK方法》

原贴地址:

https://blog.csdn.net/u010677365/article/details/78344202

原作者的Github的源码在他原贴上,大家可以从原贴中下载

实现过程

我们下载下来后用Android Studio打开后CPP下面什么也没有

但是实际目录下是有文件的,所以我们要进行修改


一、首先把CMakeList文件改为我们自己的

从上图中我们看到原作者用到的是opencv3.3,而我现在已经改为最新的OpenCV4.1了,所以我们直接不再采用他的CMakeList文件,把《OpenCV4Android中NDK开发(一)--- OpenCV4.1.0环境搭建》中已经配置好的CMakeList文件直接拷贝到src/main/cpp的文件夹下


二、修改build.gradle配置文件

上图中要改的一个是CMakeLists.txt的文件位置

还有下面两项,这个在我前面的文章也有

然后我们重新Sync一下,可以看到CPP下已经把对应的都显示出来了


三、修改对应的文件

分别点开这几个文件后,发现里面有个include<cv.h>是红色的

我看应该也是因为OpenCV的版本问题,所以我们直接把这一行删除了,对应的文件里面没有的我们就修改一下即可,如下图


四、修改CMakeList.txt文件

因为在cpp下面多了个两个相关的cpp的文件,所以我们要在CMakeLIst.txt的add_library中加入进来

在相同的文件夹下统一加进来还有另一种写法

注:这里上面的框中“*.cpp”原来我写的是“src/main/cpp/*.cpp”,结果各种编译不了,一直报错,后来我直接写的“*.cpp”即可,原因就是我们的CMakeList文件是和这些CPP的文件在同一目录下的,找对应的文件它是按照CMakeList所在的目录开始查找 。


五、按JNI规范修改代码

改完这些后准备满心欢喜的Rebuild Project了,结果给我出现的下面的错

从上面看我找了一下GetIntArrayElements这个方法在native-lib.cpp中

点击进去看原方法参数也都没有问题

在网上找了找资料发现所以要传递的非c的false语法糖需要改成JNI_FALSE。

于是我们改过来

然后重新Rebuild Project就编译通过了。后面我会慢慢熟悉下这个工程,了解其用摄像头的方法与原理,慢慢吃透再写相关的文章。

-END-

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档