仅以此纪念我被Opencv4Android的被虐之旅。。。
看了Opencv4Android的人脸检测例子,想改写成检测静态图像的。然后很多bug[大哭]。虽然我还是没解决,但从网上也看到了些方法,先记录的说~
1、No implementation found for native Lorg/opencv/core/Mat;.n_Mat ()J
确保已经包含以下代码
//OpenCV类库加载并初始化成功后的回调函数,在此我们不进行任何操作
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:{
} break;
default:{
super.onManagerConnected(status);
} break;
}
}
};
以及
@Override
public void onResume(){
super.onResume();
//通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是
//OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存在于OpenCV安装包的apk目录中
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
}
B、如果没有采用jni调用的方式,可以试着把对应的opencv本地库(/sdk/native/libs/)复制大到你的项目的libs目录下。
C、在调用opencv的java API之前,必须确保你的项目可以用Opencv,你可以在oncreat之前加:
static {
if (!OpenCVLoader.initDebug()) {
// Handle initialization error
}
}
你也可以像这样
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_load_image);
if (!OpenCVLoader.initDebug()) {
// Handle initialization error
}
[...]
}