首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV-Android highgui链接错误

OpenCV-Android highgui链接错误
EN

Stack Overflow用户
提问于 2011-02-20 08:42:57
回答 1查看 2.1K关注 0票数 3

我在Android上使用opencv,已经成功地从手机的SD卡中加载和处理了jpg图像。现在我想要操作存储在SD卡上的视频的帧。我已经在C++中编码并测试了opencv代码,但在尝试将其放入我的android-opencv项目时出现链接错误。具体地说,当我添加这行代码时

代码语言:javascript
复制
CvCapture* capture = cvCreateFileCapture( "/sdcard/testVideo.MOV" );

然后尝试重新构建项目,得到以下输出/错误:

代码语言:javascript
复制
OPENCV_CONFIG = ../../build/android-opencv.mk
PROJECT_PATH defaulting to this directory
/Users/me/Documents/Android/android-ndk-r4-crystax/ndk-build OPENCV_CONFIG=../../build/android-opencv.mk PROJECT_PATH=. V=0 
Compile++ thumb: Assay <= /Users/me/Documents/Android/opencv/android/apps/MyApp/jni/Processor.cpp
SharedLibrary  : libAssay.so
/Users/me/Documents/Android/opencv/android/build/obj/local/armeabi-v7a/libhighgui.a(cap.o): In function `cvCreateVideoWriter':
cap.cpp:(.text.cvCreateVideoWriter+0x16): undefined reference to `cvCreateVideoWriter_Images(char const*)'
cap.cpp:(.text.cvCreateVideoWriter+0x20): undefined reference to `cvCreateVideoWriter_Images(char const*)'
/Users/me/Documents/Android/opencv/android/build/obj/local/armeabi-v7a/libhighgui.a(cap.o): In function `cvCreateFileCapture':
cap.cpp:(.text.cvCreateFileCapture+0x2): undefined reference to `cvCreateFileCapture_Images(char const*)'
collect2: ld returned 1 exit status
make[1]: *** [/Users/me/Documents/Android/opencv/android/apps/MyApp/obj/local/armeabi/libAssay.so] Error 1
make: *** [libs/armeabi-v7a/libAssay.so] Error 2

它似乎在链接到cvCreateFileCapture时出现了问题。我读到opencv库的指定顺序很重要,但不确定我应该使用什么顺序(或者这是否是我的问题)。我的opencv库按以下顺序指定:

代码语言:javascript
复制
OPENCV_LIBS := $(OPENCV_LIB_DIRS) -lfeatures2d  -lcalib3d -limgproc -lobjdetect  \
     -lvideo  -lhighgui -lml -llegacy -lcore -lopencv_lapack -lflann \
    -lzlib -lpng -ljpeg -ljasper 

有谁知道如何让cvCreateFileCapture工作吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2011-02-21 03:02:05

为了解决这个问题,假设您在主干之外工作,您可以使用svn来获取链接器问题的修复程序:https://code.ros.org/trac/opencv/changeset/4756

但是,它现在只支持从图像序列中捕获:

代码语言:javascript
复制
// capture video from a sequence of images
// the filename when opening can either be a printf pattern such as
// video%04d.png or the first frame of the sequence i.e. video0001.png

为了真正支持视频读写,我们需要添加ffmpeg或其他视频库支持。我已经看到了ffmpeg的移植,但是还没有时间或者需要将它们添加到android的opencv中。让我知道这是否有价值,或者如果你已经这样做了,并提交一个补丁。请务必通过opencv trac站点执行此操作。

https://code.ros.org/trac/opencv/wiki

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5054526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档