1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
diff --git a/AprilTagTrackers/CMakeLists.txt b/AprilTagTrackers/CMakeLists.txt
index 0b56197..da15ab0 100644
--- a/AprilTagTrackers/CMakeLists.txt
+++ b/AprilTagTrackers/CMakeLists.txt
@@ -11,10 +11,13 @@ include("${SUPERPROJECT_SOURCE_DIR}/CMake/shared.cmake")
AprilTagTrackers_options()
# Find our dependencies
-att_find_dep(OpenCV REQUIRED)
-att_find_dep(apriltag REQUIRED)
-att_find_dep(openvr REQUIRED)
-att_find_dep(wxWidgets REQUIRED core base)
+find_package(OpenCV REQUIRED)
+find_library(APRILTAG_LIB apriltag REQUIRED)
+find_library(OPENVR_LIB openvr_api REQUIRED)
+find_package(wxWidgets COMPONENTS core base REQUIRED)
+include(${wxWidgets_USE_FILE})
+
+include_directories("/usr/include/openvr/")
# Explicitly list source files as recommended by cmake
set(ATT_SOURCE_FILES
@@ -61,7 +64,7 @@ endif()
# Link libraries defined as targets, includes are automatic
target_link_libraries(AprilTagTrackers PUBLIC
- ${OpenCV_LIBS} wx::wx openvr::openvr apriltag::apriltag
+ ${OpenCV_LIBS} ${wxWidgets_LIBRARIES} ${OPENVR_LIB} ${APRILTAG_LIB}
common::semver)
# Ensure compiler with c++17 language features
diff --git a/AprilTagTrackers/Serializable.h b/AprilTagTrackers/Serializable.h
index 6e143ed..98d80e9 100644
--- a/AprilTagTrackers/Serializable.h
+++ b/AprilTagTrackers/Serializable.h
@@ -192,7 +192,7 @@ inline void ReadNode(const cv::FileNode&, const char*, const Comment&)
void WriteNode(cv::FileStorage& fs, const char*, const cv::Ptr<cv::aruco::DetectorParameters>& field);
inline void ReadNode(const cv::FileNode& fn, const char*, cv::Ptr<cv::aruco::DetectorParameters>& field)
{
- cv::aruco::DetectorParameters::readDetectorParameters(fn, field);
+ field->readDetectorParameters(fn);
}
template <typename ST>
diff --git a/AprilTagTrackers/Tracker.cpp b/AprilTagTrackers/Tracker.cpp
index 556fe52..462591d 100644
--- a/AprilTagTrackers/Tracker.cpp
+++ b/AprilTagTrackers/Tracker.cpp
@@ -944,7 +944,7 @@ void Tracker::CalibrateTracker()
{
if (cv::aruco::estimatePoseBoard(corners, ids, arBoard, calib_config.camMat, calib_config.distCoeffs, boardRvec[i], boardTvec[i], false) > 0) // try to estimate current trackers pose
{
- cv::aruco::drawAxis(image, calib_config.camMat, calib_config.distCoeffs, boardRvec[i], boardTvec[i], 0.1f); // if found, draw axis and mark it found
+ cv::drawFrameAxes(image, calib_config.camMat, calib_config.distCoeffs, boardRvec[i], boardTvec[i], 0.1f); // if found, draw axis and mark it found
boardFound[i] = true;
}
else
@@ -1265,7 +1265,7 @@ void Tracker::MainLoop()
cv::Vec3d rvec = q.toRotVec();
cv::Vec3d tvec{rpos[0], rpos[1], rpos[2]};
- cv::aruco::drawAxis(drawImg, calib_config.camMat, calib_config.distCoeffs, rvec, tvec, 0.10f);
+ cv::drawFrameAxes(drawImg, calib_config.camMat, calib_config.distCoeffs, rvec, tvec, 0.10f);
if (!trackerStatus[i].boardFound) // if tracker was found in previous frame, we use that position for masking. If not, we use position from driver for masking.
{
@@ -1543,7 +1543,7 @@ void Tracker::MainLoop()
// convert rodriguez rotation to quaternion
cv::Quatd q = cv::Quatd::createFromRvec(trackerStatus[i].boardRvec);
- // cv::aruco::drawAxis(drawImg, user_config.camMat, user_config.distCoeffs, boardRvec[i], boardTvec[i], 0.05);
+ // cv::drawFrameAxes(drawImg, user_config.camMat, user_config.distCoeffs, boardRvec[i], boardTvec[i], 0.05);
q = cv::Quatd{0, 0, 1, 0} * (wrotation * q) * cv::Quatd{0, 0, 1, 0};
|