apriltag3的c 簡單使用

2021-09-29 14:10:29 字數 2844 閱讀 8701

首先找個資料夾去這apriltag.gitgit clone下來,然後

mkdir build

cd build

cmake -dcmake_install_prefix=/usr/local/apriltags .. ##指定install位置並cmake

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 $

$$)

比如我改完後的apriltagconfig-release.cmake檔案為:

首先把這裡apriltag用到的標頭檔案全部加上apriltag/,因為我們之間apriltag_include_dir設定沒有設定到/usr/local/apriltags/include/apriltag。

標頭檔案引用如下:

#include #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($)

message(status "apriltag_include dir:$")

message(status "apriltag_dir:$")

message(status "apriltag_libs:$")

# opencv_demo

if(opencv_found)

add_executable(opencv_demo opencv_demo.cc)

target_link_libraries(opencv_demo $ $)

set_target_properties(opencv_demo properties cxx_standard 11)

endif(opencv_found)

然後

搞定

git 的簡單使用 3

git鼓勵大量使用分支 檢視分支 git branch 建立分支 git branch 切換分支 git checkout 建立 切換分支 git checkout b 合併某分支到當前分支 git merge 刪除分支 git branch d git stash 指令提供了可以將工作現場儲存的效...

c 簡單程式設計 3

1.驗證性實驗部分 類 類是將不同型別的資料和與這些資料相關的操作封裝在一起的集合體,有點像c語言中的結構。類實際上是一種抽象機制,它描述了一類事物的共同屬性和行為。物件 例項化的類就是物件。建構函式 c 程式的初始化工作由建構函式來完成,它的作用是在物件被建立時利用特定的值構造物件,將物件初始化為...

okHttp3的簡單使用

在gradle中新增包 compile com.squareup.okhttp3 okhttp 3.9.0 建立okhttpclient例項 okhttpclient client new okhttpclient 如果需要發起http請求 request request new request.b...