如何在Qt 5.6上使用ANDROID上的ARTOOLKIT LIBRARY?

时间:2016-06-28 08:18:47

标签: android qt video-capture artoolkit

我想使用artoolkit库获取 videocapture ,以便在 android 上进行图像处理。我是在 Qt5.6 上做的。所以我会使用原生(c ++)部分进行处理,使用 java 部分来获取视频捕获(获取帧)。
在官方网站上他们是sais:

  

Android目前不允许从本机代码访问相机。相反,只有Java代码才能打开相机并捕获帧。此外,当前活动视图中必须包含实时摄像头预览才能捕获帧。这意味着ARToolKit本身无法启动视频捕获,但必须等待Java应用程序使用JNI传递视频信息和帧。

即使在官方网站上我也没有找到相关文档。

我准备接受任何建议或链接。 谢谢你们,

1 个答案:

答案 0 :(得分:0)

我已经成功地将库(artoolkit)集成到qt上并在projet中添加了libNative(/ android / libs / arm-v7a)。 这是我在Qt上的专业档案。

#-------------------------------------------------
#
# Project created by QtCreator 2016-06-28T11:45:46
#   Ismaila Diallo ARTOOLKIT LIBRARY FOR ANDROID
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = ArtoolkitCamera
TEMPLATE = app


SOURCES += main.cpp\
      ARNative.cpp

HEADERS  += ARNative.h

FORMS    += mainwindow.ui

 CONFIG += mobility
 MOBILITY = 

INCLUDEPATH += "/home/diallo/ArTool/include"
  android {
   LIBS += \
    -L"/home/diallo/ArTool/android/obj/local/armeabi-v7a"\
    -lar\
    -lar2\
    -largsub_es\
    -largsub_es2\
    -laricp\
    -larmulti\
    -larosg\
    -larvideo\
    -lcpufeatures\
    -leden\
    -lft2\
    -lgif\
    -ljpeg\
    -lkpm\
    -lOpenThreads\
    -losg\
    -losgAnimation\
    -losgDB\
    -losgdb_3dc\
    -losgdb_ac\
    -losgdb_bmp\
    -losgdb_bsp\
    -losgdb_bvh\
    -losgdb_cfg\
    -losgdb_curl\
    -losgdb_dds\
    -losgdb_deprecated_osg\
    -losgdb_deprecated_osganimation\
    -losgdb_deprecated_osgfx\
    -losgdb_deprecated_osgparticle\
    -losgdb_deprecated_osgshadow\
    -losgdb_deprecated_osgsim\
    -losgdb_deprecated_osgterrain\
    -losgdb_deprecated_osgtext\
    -losgdb_deprecated_osgviewer\
    -losgdb_deprecated_osgvolume\
    -losgdb_deprecated_osgwidget\
    -losgdb_dot\
    -losgdb_dw\
    -losgdb_dxf\
    -losgdb_freetype\
    -losgdb_gif\
    -losgdb_glsl\
    -losgdb_hdr\
    -losgdb_ive\
    -losgdb_jpeg\
    -losgdb_ktx\
    -losgdb_logo\
    -losgdb_lwo\
    -losgdb_lws\
    -losgdb_md2\
    -losgdb_mdl\
    -losgdb_normals\
    -losgdb_obj\
    -losgdb_openflight\
    -losgdb_osc\
    -losgdb_osg\
    -losgdb_osga\
    -losgdb_osgshadow\
    -losgdb_osgterrain\
    -losgdb_osgtgz\
    -losgdb_osgviewer\
    -losgdb_p3d\
    -losgdb_pic\
    -losgdb_ply\
    -losgdb_png\
    -losgdb_pnm\
    -losgdb_pov\
    -losgdb_pvr\
    -losgdb_revisions\
    -losgdb_rgb\
    -losgdb_rot\
    -losgdb_scale\
    -losgdb_serializers_osg\
    -losgdb_serializers_osganimation\
    -losgdb_serializers_osgfx\
    -losgdb_serializers_osgga\
    -losgdb_serializers_osgmanipulator\
    -losgdb_serializers_osgparticle\
    -losgdb_serializers_osgshadow\
    -losgdb_serializers_osgsim\
    -losgdb_serializers_osgterrain\
    -losgdb_serializers_osgtext\
    -losgdb_serializers_osgviewer\
    -losgdb_serializers_osgvolume\
    -losgdb_shp\
    -losgdb_stl\
    -losgdb_tga\
    -losgdb_tgz\
    -losgdb_tiff\
    -losgdb_trans\
    -losgdb_trk\
    -losgdb_txf\
    -losgdb_txp\
    -losgdb_vtf\
    -losgdb_x\
    -losgFX\
    -losgGA\
    -losgManipulator\
    -losgParticle\
    -losgPresentation\
    -losgShadow\
    -losgSim\
    -losgTerrain\
    -losgText\
    -losgUtil\
    -losgViewer\
    -losgVolume\
    -losgWidget\
    -lpng\
    -ltiff\
    -lutil

       }

DISTFILES += \
android/AndroidManifest.xml \
android/gradle/wrapper/gradle-wrapper.jar \
android/gradlew \
android/res/values/s.xml \
android/build.gradle \
android/gradle/wrapper/gradle-wrapper.properties \
android/gradlew.bat \

android/libs/libARNative.so

ANDROID_PACKAGE_SOURCE_DIR = $$ PWD / android

我已经有用于视频捕获的Java文件(4个java文件)。正如我在上一篇文章中所说,Android在java部分捕获视频帧并通过在Qt上使用JNI传递有关帧的信息。

我的问题?如何在Qt项目上添加Java文件并使其工作?我已经尝试但我有包问题因为我的应用程序不使用相同。我该如何解决?