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

前言

前面文章《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-

Vaccae的往期经典


OpenCV

《C++ OpenCV案例实战---卡号获取

《C++ OpenCV案例实战---卡片截取(附代码)

《C++ OpenCV透视变换---切换手机正面图片》

《C++ OpenCV实战---获取数量

《C++ OpenCV实战---利用颜色分割获取数量》


Android

《Android利用SurfaceView结合科大讯飞修改语音实别UI

《Android关于语音识别的功能实现分析(一)---结构化思维》

《Android关于语音识别的功能实现分析(二)---语义解析》

《Android根据类生成签名字符串

《Android碎片化布局fragment的实战应用

《Android中RecyclerView嵌套RecyclerView

《Android里用AsyncTask后的接口回调


.Net C#

《C#自定义特性(Attribute)讲解与实际应用

《C#根据类生成签名字符串(附DEMO下载地址)

《C++创建动态库C#调用》

《C#与三菱PLC(型号FX2N)串口通讯类


数据库及其它

《Oracel存储过程写报表实战》

《Delphi轮播视频和图片程序(用于双屏显示程序)

《SQL随机增加销售数据的脚本编写(附脚本下载地址)

《Oracle通过ODBC连接SQL Server数据库


长按下方二维码关注微卡智享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vaccae

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值