一把利刃,用不好,会伤到你遍体鳞伤。用得好,便为你披荆斩棘,所向披靡。好与不好之间,便是历练。
几经波折,终于跌跌撞撞,集成了OpenCV,并实现了灰度图片,自此一扇新的大门已经打开。
至此我手中已经基本集齐了所需的技能碎片。本文你包括:
[1].OpenCV在AndroidStudio中的集成
[2].第一个JNI项目的解析
[3].JNI中对于Android中的Bitmap类的使用
[4].一个灰度的例子开启OpenCV的世界
1、创建项目
1.1:下载OpenCV的SDK

so文件所在: sdk -> native -> libs
c++的代码 : sdk -> native -> jni -> include -> opencv2
1.2:创建一个Android Native c++的项目
项目结构如下

1.3:运行第一个项目
结果如下,在中间显示了一行:“Hello from C++”

2.JNI初始项目分析
2.1:MainActivity分析
在
静态代码块中使用System.loadLibrary方法加载了native-lib
native方法stringFromJNI()返回一个String并设置到了TextView上
---->[src/main/java/com/toly1994/rec/MainActivity.java]----
public class MainActivity extends AppCompatActivity {
static {
System.loadLibrary("native-lib");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = findViewById(R.id.sample_text);
tv.setText(stringFromJNI());
}
/**
* A native method that is implemented by the 'native-lib' native library,
* which is packaged with this application.
*/
public native String stringFromJNI();
}
2.2:native-lib.cpp分析
引

本文详细介绍了如何在Android Studio中集成OpenCV,从创建项目、配置JNI到解决集成过程中的bug,最终实现灰度图片的功能。通过解析MainActivity、分析CMakeLists.txt,以及探讨JNI中对Bitmap的操作,读者将掌握OpenCV在Android上的应用。
最低0.47元/天 解锁文章

183

被折叠的 条评论
为什么被折叠?



