ros cv_bridge安装与环境问题

🅰️cv_bridge直接安装:

sudo apt-get install ros-<ros-release>-cv-bridge

一般情况下ros自带cv_bridge,但是默认环境如下:

ros:默认python为2.7

python:常用的为3.6

opencv:可能安装了4+

cv_bridge:要求python2,opencv3

🅱️cv_bridge编译重新安装:

  1. 建立ROS工作空间并初始化

  2. git cv_bridge原文件

    sudo apt install python-catkin-tools python3-dev python3-catkin-pkg-modules python3-numpy python3-yaml ros-melodic-cv-bridge
    mkdir -p cv_bridge_ws/src && cd cv_bridge_ws
    git clone https://github.com/ros-perception/vision_opencv.git src/vision_opencv-melodic

    注意和ros版本相同

    此时直接进行编译会由于opencv4版本而编译不通过,opencv3可以跳过第三步,opencv4需要进行第三步。

  3. git opencv4修改文件

    cd cv_bridge_ws/src/vision_opencv-melodic
    git clone https://github.com/mhsitu/cv4_bridge.git

    将该文件替换原目录下的vision_opencv文件。

  4. 编译安装cv_bridge

    cd cv_bridge_ws
    # 设置安装连接的python3
    catkin config -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_INCLUDE_DIR=/usr/include/python3.6m -DPYTHON_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.6m.so
    catkin build
    source devel/setup.bash --extend

    此时可以成功编译

  5. 测试cv_bridge

    $ source devel/setup.bash --extend
    python3
    import cv_bridge
    from cv_bridge.boost.cv_bridge_boost import getCvType

    不报错则成功

    # 切换python环境
    sudo update-alternatives --config python

  6. 环境配置

    首先修改 .bashrc 文件,使得每次启动终端时先更新一下环境变量

    source /home/airporal/bishe/cv_bridge_ws/devel/setup.bash --extend

    在CMakeLists.txt文件里添加:

    find_package(cv_bridge)
    1. 使用

    from cv_bridge import CvBridge
    # 实例化
    bridge = CvBridge()
    # 将Image转化为numpy
    cv_image = bridge.imgmsg_to_cv2(msg, desired_encoding="passthrough")
    # 将numpy转化为Image
    image_cv = bridge.cv2_to_image(image,desired_encoding="passthrough")

    可以根据需要修改编码格式:

    passthrough为保持原编码

    mono8为8位灰度图像(mono16)

    bgr8为蓝绿红彩色图像

    rgb8为红绿蓝彩色图像

    bgra8为带a通道的BGR图像(rgba8)

尝试过此方法失败了

  • 13
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值