cv_bridge 调用ros自带的opencv版本的解决

在一个项目中,使用ros 订阅图像图像,然后使用opencv来提取特征点,其中需要使用cv_bridge 来实现ros图像到opencv图像的转换。但是,进行特征的提取时,发生报错,不引入cv_bridge则报错不存在,查阅资料后,确定是cv_bridge使用的是opencv3.2导致,因此需要修改cv_bridge的配置文件/opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake

set(libraries "cv_bridge;/usr/local/lib/libopencv_core.so.3.4.6;/usr/local/lib/libopencv_imgproc.so.3.4.6;/usr/local/lib/libopencv_imgcodecs.so.3.4.6")

问题解决,特此记录。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ROS中使用OpenCV摄像头可以通过以下步骤实现: 1. 安装ros-opencv包:在终端中执行以下命令 ``` sudo apt-get install ros-<distro>-opencv ``` 其中`<distro>`是你正在使用的ROS发行版的名称,例如`melodic`或`noetic`。 2. 创建ROS包并添加依赖项:在终端中执行以下命令 ``` cd ~/catkin_ws/src catkin_create_pkg opencv_camera rospy cv_bridge image_transport ``` 这将在`catkin_ws/src`目录下创建名为`opencv_camera`的新ROS包,并为其添加依赖项。 3. 编写ROS节点:打开一个新的终端窗口,输入以下命令,创建一个名为`camera_node.py`的Python脚本文件,并将其放入`opencv_camera/src`文件夹中。 ``` cd ~/catkin_ws/src/opencv_camera/src touch camera_node.py chmod +x camera_node.py ``` 然后使用你喜欢的文本编辑器打开`camera_node.py`文件,并将以下代码粘贴到文件中: ```python #!/usr/bin/env python import rospy import cv2 from sensor_msgs.msg import Image from cv_bridge import CvBridge, CvBridgeError bridge = CvBridge() def publish_camera(): rospy.init_node('camera_node', anonymous=True) pub = rospy.Publisher('camera/image_raw', Image, queue_size=10) cap = cv2.VideoCapture(0) rate = rospy.Rate(30) # 30 Hz while not rospy.is_shutdown(): ret, frame = cap.read() if not ret: break try: pub.publish(bridge.cv2_to_imgmsg(frame, "bgr8")) except CvBridgeError as e: print(e) rate.sleep() cap.release() if __name__ == '__main__': try: publish_camera() except rospy.ROSInterruptException: pass ``` 该节点将打开计算机上的默认摄像头,并将每个帧发布到`/camera/image_raw`主题中。 4. 编译ROS包:在终端中执行以下命令 ``` cd ~/catkin_ws catkin_make ``` 这将编译`opencv_camera`包。 5. 运行ROS节点:在终端中输入以下命令 ``` rosrun opencv_camera camera_node.py ``` 这将启动ROS节点并开始发布摄像头图像。 6. 查看摄像头图像:打开一个新的终端窗口,输入以下命令 ``` rosrun image_view image_view image:=/camera/image_raw ``` 这将打开一个图像查看器,其中将显示从摄像头发布的图像。 现在,你已经成功地将OpenCV摄像头集成到ROS中,并且可以在其他ROS节点中使用该摄像头。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值