-1

我正在研究 ROS groovy,我想编写一个简单的图像发布器 (C++),如http://wiki.ros.org/image_transport/Tutorials/PublishingImages中所述。当我想制作包时,我遇到如下错误。我该如何解决这个问题?

... [100%] 构建 CXX 对象 CMakeFiles/my_publisher.dir/src/my_publisher.cpp.o /home/fatima/learning_image_transport/src/my_publisher.cpp:在函数'int main(int,char**)'中: /home/fatima/learning_image_transport/src/my_publisher.cpp:17:44: 错误: 'sensor_msgs::CvBridge' 尚未声明 make[3]: * [CMakeFiles/my_publisher.dir/src/my_publisher.cpp.o]错误 1 ​​make[3]: 离开目录/home/fatima/learning_image_transport/build' make[2]: *** [CMakeFiles/my_publisher.dir/all] Error 2 make[2]: Leaving directory/home/fatima/learning_image_transport/build' make[1]: * [all] 错误 2 make[1]: 离开目录 `/home/fatima/learning_image_transport/build' make: * [全部]错误2

谢谢,萨米拉

4

1 回答 1

0

您是否添加了以下依赖项?sensor_msgs、cv_bridge、std_msgs、image_transport 到你的包?

我相信这个例子已经过时了。我假设你包括在内<cv_bridge/CvBridge.h>,但groovy中的文件应该在<cv_bridge/cv_bridge.h>.

除此之外,IplImage 是旧版本 OpenCV 的一部分,它是用 C 编写的。新版本支持 C++,您可以使用 cv::Mat 作为图像。cv::Mat 更容易处理。

使用 cv::Mat查看本教程CvBridge。它展示了如何将 ros 图像转换为 opencv 图像,反之亦然。cv::Mat 包含在 cv_bridge::CvImage 包装类中。

于 2014-05-08T09:16:23.167 回答