【ROS】因opencv版本的问题,IplImage报错
作者:互联网
opencv4.2.0开始不再支持Mat类型到IplImage类型的转换。
-
IplImage
在OpenCV中IplImage是表示一个图像的结构体,也是从OpenCV1.0到目前最为重要的一个结构;
在之前的图像表示用IplImage,而且之前的OpenCV是用C语言编写的,提供的接口也是C语言接口; -
Mat
Mat是后来OpenCV封装的一个C++类,用来表示一个图像,和IplImage表示基本一致,但是Mat还添加了一些图像函数;
如果直接使用catkin_make
进行编译就会报错。
所以在原来的基础上可以加上一些额外的参数,即使用命令catkin_make --cmake-args -DCMAKE_CXX_FLAGS=-DCV__ENABLE_C_API_CTORS
进行编译。
或者就是在work space 目录下的CMakeLists.txt
中的set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ...)
中添加-DCMAKE_CXX_FLAGS=-DCV__ENABLE_C_API_CTORS
,然后再使用catkin_make
进行编译。
参考:
https://blog.csdn.net/weixin_44694952/article/details/109221487
https://blog.csdn.net/weixin_41855010/article/details/111402710
https://github.com/leggedrobotics/darknet_ros/issues/266
标签:catkin,Mat,OpenCV,CXX,opencv,报错,FLAGS,ROS,IplImage 来源: https://www.cnblogs.com/Balcher/p/16368777.html