我正在研究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: * [all]错误2
谢谢, 萨米拉
答案 0 :(得分:0)
您是否添加了以下依赖项? sensor_msgs,cv_bridge,std_msgs,image_transport到你的包裹?
我相信这个例子已经过时了。我假设你包含了<cv_bridge/CvBridge.h>
,但 groovy 中的文件应该在<cv_bridge/cv_bridge.h>
找到。
除此之外,IplImage是用C语言编写的旧版OpenCV的一部分。较新的版本支持C ++,您可以使用cv :: Mat作为图像。 cv :: Mat更容易处理。
查看本教程CvBridge using cv::Mat。它显示了如何将ros图像转换为opencv图像,反之亦然。 cv :: Mat包含在cv_bridge :: CvImage包装类中。