经过两天的莫怕滚打,终于把加上cvsvm的机器人行人检测跟踪包编译好了,先写一下完成的过程。
1.鉴于之前机器人主机上的opencv版本是3.4.1,编译出现问题,于是多方查阅资料,将opencv的版本回调2.4.9
2.在安装回调版本之前,现将主机中的opencv版本下载干净,不然出问题。
3.修改cmake文件,这里用了很多时间,搞清楚cmake文件的格式和编写,下面是修改后的cmake:
cmake_minimum_required(VERSION 2.8.3)
project(track_pkg)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -pedantic -O2 -Wno-long-long -fno-omit-frame-pointer")
find_package(catkin REQUIRED COMPONENTS
cv_bridge
image_transport
roscpp
sensor_msgs
std_msgs
geometry_msgs
)
//这一步很关键,而其他的修改似乎没有必要,我做了对opencv_lib_dir和opencv_include_dir的修改,实际上不用。
set(OpenCV_DIR /usr/local/share/OpenCV)
find_package(OpenCV REQUIRED)
if(NOT WIN32)
ADD_DEFINITIONS("-std=c++0x -O3")
endif(NOT WIN32)
catkin_package(
)
include_directories(
${catkin_INCLUDE_DIRS}
)
link_directories ( ${OpenCV_LIB_DIR} )
MESSAGE(STATUS "OpenCV_LIB_DIR: ${OpenCV_LIB_DIR}")
include_directories ( ${OpenCV_INCLUDE_DIRS} )
MESSAGE(STATUS "OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}")
INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR}/)
include_directories(${CMAKE_SOURCE_DIR}/src/)
FILE(GLOB_RECURSE sourcefiles "src/*.cpp")
add_executable( kcf_node ${sourcefiles} )
target_link_libraries( kcf_node ${OpenCV_LIBRARIES} ${OpenCV_LIBS} ${catkin_LIBRARIES})
4.对runtracker.cpp做局部修改,由于runtracker.cpp文件太长,这里就不直接放上来了,作为单独文件传上来。
5.就是用机器人做跟踪测试.效果再观测。