ros 接收相机数据数据并发布

news2024/11/20 12:25:02

完整这个任务不需要用到python3

效果如下所示

环境 

ROS1  python2.7

  1. 原始环境 无conda  或者conda deactivate 无conda 状态

  2. pip install rospkg

  3. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python==4.2.0.3

  4. 代码 放在工程目录中

#!/usr/bin/env python
#!coding=utf-8
 
#write by leo at 2018.04.26
#function: 
#1, Get live_video from the webcam.
#2, With ROS publish Image_info (to yolo and so on).
#3, Convert directly, don't need to save pic at local.
 
import rospy
from sensor_msgs.msg import Image
import cv2
import numpy as np
from cv_bridge import CvBridge, CvBridgeError
import sys
 
 
def webcamImagePub():
    # init ros_node
    rospy.init_node('webcam_puber', anonymous=True)
    # queue_size should be small in order to make it 'real_time'
    # or the node will pub the past_frame
    img_pub = rospy.Publisher('webcam/image_raw', Image, queue_size=2)
    rate = rospy.Rate(25) # 5hz
 
    # make a video_object and init the video object
    cap = cv2.VideoCapture(0)
    # define picture to_down' coefficient of ratio
    scaling_factor = 0.5
    # the 'CVBridge' is a python_class, must have a instance.
    # That means "cv2_to_imgmsg() must be called with CvBridge instance"
    bridge = CvBridge()
 
    if not cap.isOpened():
        sys.stdout.write("Webcam is not available !")
        return -1
 
    count = 0
    # loop until press 'esc' or 'q'
    while not rospy.is_shutdown():
        ret, frame = cap.read()
        # resize the frame
        if ret:
            count = count + 1
        else:
            rospy.loginfo("Capturing image failed.")
        if count == 2:
            count = 0
            frame = cv2.resize(frame,None,fx=scaling_factor,fy=scaling_factor,interpolation=cv2.INTER_AREA)
            msg = bridge.cv2_to_imgmsg(frame, encoding="bgr8")
            img_pub.publish(msg)
            print '** publishing webcam_frame ***'	
        rate.sleep()
 
if __name__ == '__main__':
    try:
        webcamImagePub()
    except rospy.ROSInterruptException:
        pass

运行代码 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1031806.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

stm32学习笔记:OLED显示屏

一、OLED简介 OLED:有机发光二极管,供电∶3~5.5V,通信协议︰I2C/SPI,分辨率∶12864 二、常用的调试方式 串口调试∶通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息 显示屏调试∶直接将显示屏连接…

龙讯旷腾机器学习力场PWMLFF V0.1.0——优化件lammps接口,提供主动学习方案

PWMLFF(机器学习力场)手册 http://doc.lonxun.com/PWMLFF/ 我们都知道从第一性原理出发的分子动力学(Ab Initio Molecular Dynamics, AIMD)计算非常精确,但需要消耗大量时间和计算资源,能模拟的空间尺度和…

代码随想录算法训练营第59天 | ● 503.下一个更大元素II ● 42. 接雨水

文章目录 前言一、503.下一个更大元素II二、42. 接雨水总结 前言 单调栈; 一、503.下一个更大元素II 循环的问题:1.多建立一个数组 2.采用取模的方法; 问题:采用取模,后面的值会被前面的覆盖掉吗? 答&am…

宁波融资融券开户利息率最低是多少?两融利率5%或以下!

宁波融资融券开户利息率最低是多少?两融利率5%或以下! 融资融券是指投资者通过借入资金融资,或者借入证券卖出并借入资金购买证券,以达到增加投资收益的一种交易方式。融资融券交易需要满足一定的条件,如投资者必须拥有一定的股…

Go 围炉札记

文章目录 一、Go 安装 一、Go 安装 VScode下配置Go语言开发环境【2023最新】 基础篇:新手使用vs code新建go项目 vscode里安装Go插件和配置Go环境 Documentation Golang 配置代理 Go命令详解 一文详解Go语言常用命令 Go 语言教程 熬夜整理,最全的Go语…

阿里云效自动构建python自动测试脚本

之前一直用的是jenkins自动构建自动化脚本,因为现在的公司统一在阿里云效的流水线上做代码的管理,构建,要求自动化测试也在上面自动构建,故而学习了一下。为自己做一个记录,也给有需要的朋友做一个参考。 1. 新建流水…

大厂面试-16道面试题

1 java集合类有哪些? List是有序的Collection,使用此接口能够精确的控制每个元素的插入位置,用户能根据索引访问List中元素。常用的实现List的类有LinkedList,ArrayList,Vector,Stack。 ArrayList是容量…

python 为 网易云下载的 本地音乐文件增加 序号

前言 网易云下载的音乐文件,信息挺全的,但是缺少序号,用本地播放器听是乱序的,就很头疼。 遂写一个python脚本解决问题 本python会把基于音乐文件的元信息,重命名文件 到 以下格式 序号 标题.后缀 额外依赖库 muta…

工时表软件如何彻底改变时间跟踪工作?

在工作场所,生产率的下降一直在消耗我们的精力和钱包。你知道吗,每年仅生产力倦怠一项,每位员工就会给企业造成 1,967 美元的惊人损失! 好消息是,有一种创新的解决方案可以解决这种生产力下降的问题,它就是…

远程控制桌面软件是否支持远程防护墙配置

远程控制桌面软件是一种便捷的工具,它能够帮助用户在远程访问和操作计算机桌面。然而,远程控制软件是否支持远程防火墙配置这个问题的答案并不是简单的是或否。下面将从软件设计的角度和实际使用情况的角度来解释这个问题。 首先,让我们了解一…

国产自研BI系统,更懂中国企业数据分析需求

国产自研BI系统是指由中国企业自主研发的商业智能(BI)系统,这类系统更加了解中国企业的数据分析需求,能够提供更加贴合实际的解决方案。比如说奥威BI系统就是典型的国产自研,不仅了解中国企业的数据分析需求&#xff0…

(2022|ICML,Diffusion,引导,ADM)GLIDE:使用文本引导扩散模型实现逼真图像生成和编辑

GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models 公众号:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料) 目录 0. 摘要 1. 简介 2. 背景 2.1. 扩…

PCB布线之电源线干扰?|深圳比创达EMC

一客户画户外摄像头的板子,板子上电源线非常多,6层板,电源层已经被分割完了,还有2根电源线,没办法只能并行走线了,板子画完后发主管评审,主管让其在2根电源线中间走一根地线,该客户感…

什么是AI视频智能分析?你真的懂AI视频分析吗?

AI视频分析,顾名思义就是指利用人工智能技术对视频数据进行分析和处理的过程。通过计算机视觉和深度学习等技术,能自动地从视频数据中提取有用的信息、模式与结构,并生成对视频内容的理解和推理。那么,AI视频分析技术包括哪几个方…

oracle客户端的安装(SQL Developer)

参考资料 软件首页:https://www.oracle.com/database/sqldeveloper/ 官方文档:https://docs.oracle.com/en/database/oracle/sql-developer/ 下载地址:https://www.oracle.com/database/sqldeveloper/technologies/download/ 安装指南&#…

GB28181协议-SIP协议详解

1.SIP协议 SIP(Session initialization Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。 它是一个基于文本的应用层控制协议,用于…

位图bitset及其应用——【C++实现】

本章代码gitee仓库:位图实现及其应用 文章目录 1.位图的概念2. 位图的实现3. 位图应用 1.位图的概念 当面对海量数据时,我们一般的数据结构无法存储那么多的值,要对这些数据进行分析,我们就可以采用位图来对这些数据进行标记&…

02强化学习基本概念

强化学习基本概念 前言1、State、Action、Policy等① State② Action③ State transition④ State transition probability⑤ Polity 2、Reward、Return、MDP等① Reward② Trajectory and return③ Discounted return④ Episode⑤ MDP 总结: 前言 本文来自西湖大学…

PMP考试300条知识点汇总,20天上岸!

PMP考试300条知识点完整内容可在文末获取。 3、项目管理 vs 运营管理 项目与日常运营的共同特征: 由人来做、 受制于有限的资源、需要规划、执行和控制、为了实现组织的目标或战略计划 项目与日常运营的根本区别: 项目是临时的;运营是持…

企业进行品牌推广时怎么才能达到预期广告效应?不如试试软文营销

企业进行品牌推广的目的就在于提升品牌的曝光率,树立该品牌在市场中的形象,加强品牌的影响力与公信力,提高产品的竞争力,那么企业进行品牌推广时怎么才能达到预期效果呢,我们可以试试软文营销,接下来媒介盒…