【问题标题】:How to use ARTOOLKIT LIBRARY ON ANDROID on Qt 5.6 ?如何在 Qt 5.6 上的 ANDROID 上使用 ARTOOLKIT 库?
【发布时间】:2016-06-28 08:18:47
【问题描述】:

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

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

我什至在官方网站上也没有找到关于它的文档。

我已准备好接受任何建议或链接。 谢谢各位,

【问题讨论】:

    标签: android qt video-capture artoolkit


    【解决方案1】:

    我已经在qt上成功集成了库(artoolkit),并在项目中添加了libNative(/android/libs/arm-v7a)。 这是我在 Qt 上的 pro 文件。

    #-------------------------------------------------
    #
    # 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 文件并使其正常工作?我已经尝试过,但我有包问题,因为我的应用程序没有使用相同的包。我该如何解决?

    【讨论】:

      猜你喜欢
      • 2016-01-25
      • 2016-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-09
      相关资源
      最近更新 更多