一把利刃,用不好,会伤到你遍体鳞伤。用得好,便为你披荆斩棘,所向披靡。好与不好之间,便是历练。
几经波折,终于跌跌撞撞,集成了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();
}