【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进行编译。
或者在当前Catkin Package下的set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ...)添加-DCV__ENABLE_C_API_CTORS
参考:
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

浙公网安备 33010602011771号