OpenCV问题汇总

一.C++,VS2010下:

配置见此http://blog.csdn.net/u013105549/article/details/38951011

关键点如下:

1.VS2010最高支持到opencv2.4.10

2.出现LINK : fatal error LNK1104: 无法打开文件“.obj”或无法打开文件“D:\opencv\build\x64\vc10\lib\opencv_core2410d.lib的原因

链接器-输入-附加依赖项没配好,注意!附加依赖项不要勾选从父级或项目默认设置继承


1.1.Mat类不识别:

Mat类型对应的头文件是"highgui.h",在编译的时候仅仅加上#include "highgui.h" 这句话是不行的,得告诉系统你的作用域是什么,两种办法:

1.1.1、在程序的最开始加上: using namespace cv;

1.1.2、把Mat改为 cv::Mat


1.2.imshow显示灰屏

增加waitKey(0);


1.3.找不到android.hardware.camera2类

改API为21以上版本


二.opencvforandroid配置

参见http://blog.csdn.net/linshuhe1/article/details/51192355

2.1设置ndk路径时由于eclipse版本较早,preferences->android里没有ndk选项,参见百度经验https://jingyan.baidu.com/article/4d58d5413000a09dd4e9c0fe.html,下载插件即可,然后设置时报错Not a valid NDK directory,在D:\android-ndk-r14b-windows-x86_64\android-ndk-r14b下新建名为ndk-build的空文件

2.2 apk需要依赖opencvmanager的解决

项目目录新建一个libs文件夹,里面放从opencv文件夹里拷贝出来的so库,D:\opencv-3.2.0-android-sdk\OpenCV-android-sdk\sdk\native\libs

resume里改为

@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_3_2_0, this, mLoaderCallback);  
        //要不依赖manager就照下写
        if (!OpenCVLoader.initDebug()) {  
            Log.e("main", "Cannot connect to OpenCV Manager");  
        } else {  
         mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);  
        }
    }  

3.报Could not find OpenCV Library - 3.2.0.apk!措

在项目上单击右键在弹出菜单中选择Properties,然后在弹出的Properties窗口中左侧选择Android,然后点击右下方的Add按钮,选择OpenCV Library 2.4.3并点击OK

检查是否复制了libs文件夹

4.12-07 16:31:21.178: E/MessageQueue-JNI(27441): java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.grayprocess_pluscolor.ColorBlobDetector.setHsvColor(org.opencv.core.Scalar)' on a null object reference

愚蠢的错误,忘记实例化了

补上mDetector = new ColorBlobDetector();


5.12-19 10:41:07.905: E/JavaBinder(11998): !!! FAILED BINDER TRANSACTION !!!  (parcel size = 8294844)

用intent传输的bitmap不能大于40kb


你可能感兴趣的:(图像处理)