【问题标题】:Capturing android camera with VideoCapture in OpenCV2.3.1在 OpenCV2.3.1 中使用 VideoCapture 捕获 android 相机
【发布时间】:2012-02-03 07:34:23
【问题描述】:

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

SharedLibrary : liblivecamera.so C:/开发/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_Android14convertYUV2BGREiiPKhRN2cv3MatEbb *+0x1c6): undefined reference tocv::cvtColor(cv::_InputArray const&, cv::_OutputArray const&, int, int)' cap_android.cpp: (.text._ZN17CvCapture_Android14convertYUV2BGREiiPKhRN2cv3MatEbb +0x1f8): 未定义引用 `cv::cvtColor(cv::_InputArray const&, cv::_OutputArray const&, int, int)' collect2: ld 返回 1 退出 状态制作:* [/cygdrive/c/Development/android-opencv-wsp/ VideoCamLibAndroid_v0.1/obj/local/armeabi-v7a/liblivecamera.so] 错误 1*

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

有没有人成功使用 OpenCV2.3.1 的 VideoCapture 模块?

【问题讨论】:

    标签: android opencv camera android-ndk video-capture


    【解决方案1】:

    我遇到了完全相同的问题,在我的头撞墙几个小时后,我终于找到了解决方案!

    显然,OpenCV 2.3.1 提供的OpenCV.mk 中有错误。

    下面一行:

    OPENCV_MODULES := contrib calib3d objdetect features2d video imgproc highgui ml legacy flann core

    应替换为:

    OPENCV_MODULES := contrib legacy objdetect calib3d features2d video highgui ml imgproc flann core

    看起来非常相似,但如果你看一下模块的顺序,就会有细微的差别。

    您可以通过查看OpenCVConfig.cmake 文件来了解此更改的逻辑,该文件声明如下: #libraries order is very important because linker from Android NDK is one-pass linker

    如果它如此重要,为什么不包含在原始OpenCV.mk ?????

    【讨论】:

      猜你喜欢
      • 2021-11-08
      • 1970-01-01
      • 2015-03-29
      • 2011-09-03
      • 2013-08-30
      • 2019-07-09
      • 1970-01-01
      • 2018-05-09
      • 1970-01-01
      相关资源
      最近更新 更多