您的位置:首页 > 运维架构

No implementation found for native Lorg/opencv/core/Mat;.n_Mat ()J

2015-04-29 16:03 351 查看
仅以此纪念我被Opencv4Android的被虐之旅。。。

看了Opencv4Android的人脸检测例子,想改写成检测静态图像的。然后很多bug[大哭]。虽然我还是没解决,但从网上也看到了些方法,先记录的说~

1、No implementation found for native Lorg/opencv/core/Mat;.n_Mat ()J

确保已经包含以下代码

[code]//OpenCV类库加载并初始化成功后的回调函数,在此我们不进行任何操作
    private BaseLoaderCallback  mLoaderCallback = new BaseLoaderCallback(this) {
        @Override
        public void onManagerConnected(int status) {
            switch (status) {
                case LoaderCallbackInterface.SUCCESS:{
                } break;
                default:{
                    super.onManagerConnected(status);
                } break;
            }
        }
    };


以及

[code]@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之前加:

[code]static {
    if (!OpenCVLoader.initDebug()) {
        // Handle initialization error
    }
}


你也可以像这样

[code]public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_load_image);
    if (!OpenCVLoader.initDebug()) {
        // Handle initialization error
    }
    [...]
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐