YOLO踩坑:编译darknet_ros报错no matching function for call to ‘_IplImage::_IplImage(cv::Mat&)’的解决方案

前几天按照YOLO_v4的教程,想在ROS环境下运行YOLO算法,结果在编译的环节报错了,如下图所示。
在这里插入图片描述百度搜索无果,后来用bing搜索终于找到了可行的参考解决方案,因为opCV版本的问题,我们需要在编译的时候加上一些额外的参数如下:

catkin build darknet_ros --cmake-args -DCMAKE_CXX_FLAGS=-DCV__ENABLE_C_API_CTORS

具体的原因在链接中解释的比较明白了:

I think I found the way to fix the problem. The reason why this error
showed is the new version opencv doesn’t define the macro
‘CV__ENABLE_C_API_CTORS’. As a result, the function
‘_IplImage::_IplImage(cv::Mat&)’ would not be defined.

To fix the problem, just need to add one arg when using the catkin
tool to build the darknet_ros
-DCMAKE_CXX_FLAGS=-DCV__ENABLE_C_API_CTORS. This arg will tell the cmake to define the marco ‘CV__ENABLE_C_API_CTORS’.

In short, under the new version opencv, we can build this project
with: catkin build darknet_ros --cmake-args
-DCMAKE_CXX_FLAGS=-DCV__ENABLE_C_API_CTORS or catkin build -DCMAKE_CXX_FLAGS=-DCV__ENABLE_C_API_CTORS darknet_ros

版权声明:本文为CSDN博主「梧桐雪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41855010/article/details/111402710

梧桐雪

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

【经典论文解读】YOLO 目标检测

前言
YOLO是一种目标检测方法,它的输入是整张图片,当检测到目标物体时用边界框圈起来,同时给该目标物体一个类别;边界框由中心位置、宽、高等来表示的;它的输出是n个物体的检测信息,每个物体的信息包括:中心位置(x,y)、高(h)、宽(w)、类