opencv + python3 利用ros 的 cv_bridge 传送图像消息的一种替代方法

本文介绍了如何在opencv + python3环境中,通过自定义图像消息类型Image_Msg.msg来替代ROS的cv_bridge进行图像消息传递。在python2节点中订阅相机图像并使用cv_bridge处理,然后通过自定义消息发送到python3节点,实现python2和python3之间的图像数据传输。
摘要由CSDN通过智能技术生成

opencv + python3 利用ros 的 cv_bridge 传送图像消息的一种替代方法

利用自定义的图像类型代替sensor_msgs/Image, python2可以使用cv_bridge,但是python3不可以使用cv_bridge,所以在python2节点使用cv_bridge,python3不使用cv_bridge, 利用自定义的消息类型在python2和python3节点传送图像数据。

1. 自定义图像消息类型 Image_Msg.msg

int32 height
int32 width
int32 channels
uint8[] data

python2节点:图像订阅相机图像消息后,利用自定义的图像消息类型将图像发送给另一个python3的节点

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import print_function
import sys
import rospy
import numpy as np
import os
from std_msgs.msg import String
from sensor_msgs.msg import Image
from cv_bridge import CvBridge, CvBridgeError
from nn_vs.msg import Image_Msg 
import cv2

class image_listenner:

    def __init__(self): 
        self.bridge = CvBridge()
        self.image_sub = rospy.Subscriber("/probot_anno/hand_camera/hand_image_raw",Image,self.image_sub_callback)
        self.image_pub = rospy.Publisher('/image_data', Image_Msg, queue_size
  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值