tuw-robotics / tuw_marker_filter

Marker base slam
BSD 3-Clause "New" or "Revised" License
10 stars 9 forks source link

problem about opencv #3

Closed fengfanrop closed 6 years ago

fengfanrop commented 6 years ago

dear Markus Macsek: sorry to bother you again.After catkin_make i find a problem like this: In file included from /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core.hpp:59:0, from /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/core.hpp:48, from /home/agc/dev/catkin_ws/src/tuw_marker_filter/tuw_marker_slam/./include/tuw_marker_slam/munkre.h:4, from /home/agc/dev/catkin_ws/src/tuw_marker_filter/tuw_marker_slam/src/tuw_markerslam/munkre.cpp:1: /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/mat.hpp: In instantiation of ‘class cv::Mat’: /home/agc/dev/catkin_ws/src/tuw_marker_filter/tuw_marker_slam/src/tuw_marker_slam/munkre.cpp:7:20: required from here /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/mat.hpp:2150:50: error: no type named ‘channel_type’ in ‘class cv::DataType’ typedef typename DataType<_Tp>::channel_type channel_type; ^ In file included from /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/mat.hpp:3639:0, from /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core.hpp:59, from /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/core.hpp:48, from /home/agc/dev/catkin_ws/src/tuw_marker_filter/tuw_marker_slam/./include/tuw_marker_slam/munkre.h:4, from /home/agc/dev/catkin_ws/src/tuw_marker_filter/tuw_marker_slam/src/tuw_marker_slam/munkre.cpp:1: /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/mat.inl.hpp:1582:1: error: no type named ‘channeltype’ in ‘class cv::DataType’ Mat<_Tp>::Mat_(const Vec<typename DataType<_Tp>::channel_type, n>& vec, bool c ^ /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/mat.inl.hpp:1591:1: error: no type named ‘channeltype’ in ‘class cv::DataType’ Mat<_Tp>::Mat_(const Matx<typename DataType<_Tp>::channel_type, m, n>& M, bool ^ /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/mat.inl.hpp:1600:1: error: no type named ‘channeltype’ in ‘class cv::DataType’ Mat<_Tp>::Mat(const Point<typename DataType<_Tp>::channel_type>& pt, bool co ^ /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/mat.inl.hpp:1609:1: error: no type named ‘channeltype’ in ‘class cv::DataType’ Mat<_Tp>::Mat(const Point3<typename DataType<_Tp>::channel_type>& pt, bool c ^ /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/mat.inl.hpp:1938:1: error: no type named ‘channeltype’ in ‘class cv::DataType’ Mat<_Tp>::operator Vec<typename DataType<_Tp>::channel_type, n>() const ^ /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/mat.inl.hpp:1951:1: error: no type named ‘channeltype’ in ‘class cv::DataType’ Mat<_Tp>::operator Matx<typename DataType<_Tp>::channel_type, m, n>() const ^ In file included from /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core.hpp:56:0, from /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/core.hpp:48, from /home/agc/dev/catkin_ws/src/tuw_marker_filter/tuw_marker_slam/./include/tuw_marker_slam/munkre.h:4, from /home/agc/dev/catkin_ws/src/tuw_marker_filter/tuw_marker_slam/src/tuw_markerslam/munkre.cpp:1: /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/traits.hpp: In instantiation of ‘struct cv::traits::Type’: /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/mat.inl.hpp:1500:41: required from ‘cv::Mat<_Tp>::Mat_() [with _Tp = tuw::Munkre::Zero]’ /home/agc/dev/catkin_ws/src/tuw_marker_filter/tuw_marker_slam/src/tuw_marker_slam/munkre.cpp:7:20: required from here /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/traits.hpp:366:8: error: ‘type’ is not a member of ‘cv::DataType’ { enum { value = DataType::type }; }; ^ In file included from /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/mat.hpp:3639:0, from /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core.hpp:59, from /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/core.hpp:48, from /home/agc/dev/catkin_ws/src/tuw_marker_filter/tuw_marker_slam/./include/tuw_marker_slam/munkre.h:4, from /home/agc/dev/catkin_ws/src/tuw_marker_filter/tuw_marker_slam/src/tuw_markerslam/munkre.cpp:1: /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/mat.inl.hpp: In instantiation of ‘cv::Mat<_Tp>& cv::Mat_<_Tp>::operator=(const _Tp&) [with Tp = tuw::Munkre::Zero]’: /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/mat.inl.hpp:1513:11: required from ‘cv::Mat<_Tp>::Mat_(int, int, const _Tp&) [with _Tp = tuw::Munkre::Zero]’ /home/agc/dev/catkin_ws/src/tuw_marker_filter/tuw_marker_slam/src/tuw_marker_slam/munkre.cpp:107:48: required from here /opt/ros/kinetic/include/opencv-3.3.1/opencv2/core/mat.inl.hpp:1668:46: error: no type named ‘vec_type’ in ‘class cv::DataType’ typedef typename DataType<_Tp>::vec_type VT; ^ tuw_marker_filter/tuw_marker_slam/CMakeFiles/tuw_marker_slam.dir/build.make:158: recipe for target 'tuw_marker_filter/tuw_marker_slam/CMakeFiles/tuw_marker_slam.dir/src/tuw_marker_slam/munkre.cpp.o' failed make[2]: *** [tuw_marker_filter/tuw_marker_slam/CMakeFiles/tuw_marker_slam.dir/src/tuw_marker_slam/munkre.cpp.o] Error 1

I think it is a problem about opencv,and have you met it before?If you have any idea to solve it ,please teach me .Thank you again.

fengfanrop commented 6 years ago

And should i download all the 'tuw_ ' package to run the program?

olliejday commented 6 years ago

If anyone else has this issue, it seems to be to do with OpenCV version 3.x. Can be fixed by adding this line

#define OPENCV_TRAITS_ENABLE_DEPRECATED

to munkre.h and munkr.cpp at the top about 5 lines in after other # define and # import lines/