apriltag3的c++简单使用
首先找个文件夹去这apriltag.gitgit clone下来,然后
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/apriltags .. ##指定install位置并cmake
##如果默认下载位置 -DCMAKE_INSTALL_PREFIX=/usr/local/apriltags就不输入了,我是下在这个自创的目录中。
make && sudo make install
之后要在自己外部链接使用的话得改改.cmake文件,主要这apriltag的.cmake文件没写入头文件和库文件位置。
所以之后
cd /usr/local/apriltags/share/apriltag/cmake
##这里切换到自己的cmake时指定的安装目录/share/apriltag/cmake中,
然后分别
sudo gedit apriltagConfig.cmake
sudo gedit apriltagConfig-release.cmake
都往里面添加如下代码,(其实往apriltagConfig-release.cmake填就够了)
set(apriltag_INCLUDE_DIR "/usr/local/apriltags/include") ##加入头文件,/usr/local/apriltags换成自己安装apriltag的目录
##加入库文件,/usr/local/apriltags换成自己安装apriltag的目录,这里的库文件可能不需要这么多,也可能因为apriltag版本不一样而名字不一样,但是处理同理,自己改改就好
find_library(apriltag_LIBRARY1 NAMES libapriltag.so PATHS "/usr/local/apriltags/lib" )
find_library(apriltag_LIBRARY2 NAMES libapriltag.so.3 PATHS "/usr/local/apriltags/lib" )
find_library(apriltag_LIBRARY3 NAMES libapriltag.so.3.1.0 PATHS "/usr/local/apriltags/lib" )
set(apriltag_LIBS ${apriltag_LIBRARY1}
${apriltag_LIBRARY2}
${apriltag_LIBRARY3})
比如我改完后的apriltagConfig-release.cmake文件为:
之后我们来测试下,直接取出git clone 下来的apriltag里面的example中的opencv_demo.cc测试,
首先把这里apriltag用到的头文件全部加上apriltag/,因为我们之间apriltag_INCLUDE_DIR设置没有设置到/usr/local/apriltags/include/apriltag。
头文件引用如下:
#include <iostream>
#include "opencv2/opencv.hpp"
#include "apriltag/apriltag.h"
#include "apriltag/tag36h11.h"
#include "apriltag/tag25h9.h"
#include "apriltag/tag16h5.h"
#include "apriltag/tagCircle21h7.h"
#include "apriltag/tagCircle49h12.h"
#include "apriltag/tagCustom48h12.h"
#include "apriltag/tagStandard41h12.h"
#include "apriltag/tagStandard52h13.h"
#include "apriltag/common/getopt.h"
然后我们在opencv_demo.cc同目录创建CMakeLists.txt文件内容如下:
cmake_minimum_required(VERSION 3.1)
project(apriltag_test)
find_package(OpenCV QUIET)
set(apriltag_DIR /usr/local/apriltags/share/apriltag/cmake)
find_package(apriltag REQUIRED)
find_package(Eigen3 REQUIRED)
include_directories(${apriltag_INCLUDE_DIRS})
message(STATUS "apriltag_include dir:${apriltag_INCLUDE_DIR}")
message(STATUS "apriltag_dir:${apriltag_DIR}")
message(STATUS "apriltag_libs:${apriltag_LIBS}")
# opencv_demo
if(OpenCV_FOUND)
add_executable(opencv_demo opencv_demo.cc)
target_link_libraries(opencv_demo ${apriltag_LIBS} ${OpenCV_LIBRARIES})
set_target_properties(opencv_demo PROPERTIES CXX_STANDARD 11)
endif(OpenCV_FOUND)
然后
mkdir build
cd build
cmake ..
make
./opencv_demo
搞定