Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在OpenCV2.3.1中通过视频捕获捕获android摄像头_Android_Opencv_Camera_Android Ndk_Video Capture - Fatal编程技术网

在OpenCV2.3.1中通过视频捕获捕获android摄像头

在OpenCV2.3.1中通过视频捕获捕获android摄像头,android,opencv,camera,android-ndk,video-capture,Android,Opencv,Camera,Android Ndk,Video Capture,我正在尝试在我的OpenCV本机应用程序中使用VideoCapture。到 按照发布的说明构建我的应用程序 OpenCV2.3.1版本,所以我有一个Android.mk文件来构建我的应用程序和 eclipse中的一个构建器可以直接从eclipse执行此操作。 编译和链接其他openCV模块时,一切正常,但当我使用VideoCapture时,会出现如下链接错误: 共享库:liblivecamera.so C:/Development/android opencv wsp/VideoCamLibAn

我正在尝试在我的OpenCV本机应用程序中使用VideoCapture。到 按照发布的说明构建我的应用程序 OpenCV2.3.1版本,所以我有一个Android.mk文件来构建我的应用程序和 eclipse中的一个构建器可以直接从eclipse执行此操作。 编译和链接其他openCV模块时,一切正常,但当我使用VideoCapture时,会出现如下链接错误:

共享库:liblivecamera.so C:/Development/android opencv wsp/VideoCamLibAndroid_v0.1/obj/local/ armeabi-v7a/libopencv_highgui.a(cap_android.o):在函数中
CvCapture_Android::convertYUV2BGR(int,int,unsigned char const*,
cv::Mat&,bool,bool)“:cap_android.cpp:
(.text._ZN17CvCapture_android14转换器YUV2BGREIIIPKHRN2CV3mateb
*+0x1c6):未定义对
cv::cvtColor(cv:_inputarrayconst&,cv:_outputarrayconst&,int,int)“cap_android.cpp: (.text._ZN17CvCapture_android14转换器YUV2BGREIIIPKHRN2CV3mateb +0x1f8):对“cv::cvtColor(cv:_InputArrayConst&,cv:_OutputarrayConst&,int,int)”集合2:ld的未定义引用返回了1个出口 状态代码:[/cygdrive/c/Development/android opencv wsp/ VideoCamLibAndroid_v0.1/obj/local/armeabi-v7a/liblivecamera.so]错误 一,*

如果我使用opencv2.3.0,我可以让它工作(使用CMake编译),但我确实需要使用OCV2.3.1及其新功能


是否有人成功地将视频捕获模块与OpenCV2.3.1结合使用

我也遇到了同样的问题,在我的头撞在墙上几个小时后,我终于找到了解决办法

显然,OpenCV 2.3.1提供的
OpenCV.mk
中存在错误

以下一行:

OPENCV\u模块:=contrib-calib3d-objdetect功能2d-video-imgproc-highgui-ml-legacy-flann-core

应替换为:

OPENCV_模块:=contrib legacy objdetect calib3d功能2d video highgui ml imgproc flann core

它看起来非常相似,但是如果你看一下模块的顺序,会有一点不同

通过查看
OpenCVConfig.cmake
文件,您可以了解此更改的逻辑,该文件的状态如下:
#库顺序非常重要,因为Android NDK的链接器是一个一次性链接器

如果它如此重要,为什么它没有包含在原始的
OpenCV.mk