LoginSignup
1
0

More than 3 years have passed since last update.

AzureKinect の opencv-kinfu-samples をビルドする

Posted at

これ。

を動かすメモ。
vcpkg で 依存する dll 、特に

  • opencv_rgbd
  • opencv_viz

をビルドする。

環境

  • Windows10(64bit)
  • visualstudio 2019 c++

vcpkg の feature機能

vcpkgでOpenCVのmoduleをビルドする

$ vcpkg install opencv4[dnn]

のようにする。

opencv4のデフォルトで有効になる feature は、

dnn, jpeg, opengl, png, tiff, webp

ports/opencv4/CONTROL に書いてある。

無い feature を追加したい

> .\vcpkg.exe search opencv4
opencv4              4.1.1-3          computer vision library
opencv4[nonfree]                      allow nonfree and unredistributable libraries
opencv4[ade]                          graph api
opencv4[contrib]                      opencv_contrib module
opencv4[cuda]                         CUDA support for opencv
opencv4[dnn]                          Enable dnn module
opencv4[eigen]                        Eigen support for opencv
opencv4[ffmpeg]                       ffmpeg support for opencv
opencv4[gdcm]                         GDCM support for opencv
opencv4[ipp]                          Enable Intel Integrated Performance Primitives
opencv4[jasper]                       JPEG 2000 support for opencv
opencv4[jpeg]                         JPEG support for opencv
opencv4[openexr]                      OpenEXR support for opencv
opencv4[opengl]                       opengl support for opencv
opencv4[openmp]                       Enable openmp support for opencv
opencv4[ovis]                         opencv_ovis module
opencv4[png]                          PNG support for opencv
opencv4[qt]                           Qt GUI support for opencv
opencv4[sfm]                          opencv_sfm module
opencv4[tbb]                          Enable Intel Threading Building Blocks
opencv4[tiff]                         TIFF support for opencv
opencv4[vtk]                          vtk support for opencv
opencv4[webp]                         WebP support for opencv
opencv4[halide]                       Halide support for opencv
opencv4[world]                        Compile to a single package support for opencv
  • rgbd
  • viz

vcpkgのパッケージ情報は、ports フォルダにある。
opencv4 を改造する。

$VCPKG_DIR/ports/opencv4/CONTROL
# 下記を追加する
Feature: viz
Build-Depends: vtk
Description: viz

Feature: rgbd
Description: rgbd
$VCPKG_DIR/ports/opencv4/portfile.cmake
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
 "ade"      WITH_ADE
# 省略
 "rgbd"     BUILD_opencv_rgbd
 "viz"      BUILD_opencv_viz
)

$ vcpkg install vtk
$ vcpkg install opencv4[nonfree,contrib,vtk,rgbd,viz]

でビルドすると、

  • opencv_rgbd.dll
  • opencv_viz.dll

が出現した。

vizvtk に依存している様子。

opencv-kinfu-samples を動かす

Kinect-Azure の KinectFusion サンプル

雑に改造したopencv-kinfu-samples/CMakeLists.txt
# find_package がよくわからないので、適当に書き替えた。
cmake_minimum_required(VERSION 3.10)
project(kinfu-example)
add_executable(kinfu-example main.cpp)

# find_package(k4a 1.3.0 QUIET)
set(K4A_INCLUDE_DIRS "C:/Program Files/Azure Kinect SDK v1.4.0/sdk/include")
include_directories(${K4A_INCLUDE_DIRS})

# find_package(OpenCV)
set(OpenCV_INCLUDE_DIRS "C:/vcpkg/installed/x64-windows/include")
include_directories(${OpenCV_INCLUDE_DIRS})

target_compile_definitions(kinfu-example PRIVATE
    HAVE_OPENCV
    )

target_link_directories(kinfu-example PRIVATE
    "C:/Program Files/Azure Kinect SDK v1.4.0/sdk/windows-desktop/amd64/release/lib"
    debug
    "C:/vcpkg/installed/x64-windows/debug/lib"
    optimized
    "C:/vcpkg/installed/x64-windows/lib"
    )

target_link_libraries(kinfu-example PRIVATE 
    k4a
    debug
    opencv_rgbdd
    opencv_vizd
    opencv_cored
    opencv_calib3dd
    opencv_imgcodecsd
    opencv_highguid
    optimized
    opencv_rgbd
    opencv_viz
    opencv_core
    opencv_calib3d
    opencv_imgcodecs
    opencv_highgui
    )
launch.json
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(Windows) 起動",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/kinfu-example.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "C:\\Program Files\\Azure Kinect SDK v1.4.0\\tools", // dll以外にもこのフォルダのファイルが実行に必要。コピーしてもよいが移動している
            "environment": [
                {
                    "name": "PATH",
                    "value": "${env:PATH};c:\\vcpkg\\installed\\x64-windows\\debug\\bin;c:\\vcpkg\\installed\\x64-windows\\bin" // とりあえず debug, release 両方
                }
            ],
            "externalConsole": false
        }
    ]
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0