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

完整这个任务不需要用到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 sysdef webcamImagePub():# init ros_noderospy.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_frameimg_pub = rospy.Publisher('webcam/image_raw', Image, queue_size=2)rate = rospy.Rate(25) # 5hz# make a video_object and init the video objectcap = cv2.VideoCapture(0)# define picture to_down' coefficient of ratioscaling_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 -1count = 0# loop until press 'esc' or 'q'while not rospy.is_shutdown():ret, frame = cap.read()# resize the frameif ret:count = count + 1else:rospy.loginfo("Capturing image failed.")if count == 2:count = 0frame = 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.hqwc.cn/news/115557.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为云云耀云服务器L实例评测|认识redis未授权访问漏洞 漏洞的部分复现 设置连接密码 redis其他命令学习

前言 最近华为云云耀云服务器L实例上新,也搞了一台来玩,期间遇到过MySQL数据库被攻击的情况,数据丢失,还好我有几份备份,没有造成太大的损失。昨天收到华为云的邮箱提醒,我的redis数据库没有设置密码&…

科目三基础四项(一)

​ 第一天,基础操作,仪表,方向,挡位 按照模块来 1、方向盘两手在两侧 ​ 编辑 转向时的角度,只用:向左540,向右180 向左打和向右打的角度要抵消,回正 掉头向左打满再回 注意…

Flink1.14 Source概念入门讲解与源码解析

目录 Flink Source概念 Source Source源码 getBoundedness() createReader(SourceReaderContext readerContext) createEnumerator(SplitEnumeratorContext enumContext) SplitEnumerator restoreEnumerator(SplitEnumeratorContext enumContext, EnumChkT checkpoint) …

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

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

.NET 8 中的 WPF File Dialog 改进

作者:Dipesh Kumar 排版:Alan Wang 我们很高兴宣布从 .NET 8 Preview 7 开始,对 WPF 中的通用文件对话框 API 进行了一系列新的改进。其中包括迄今为止存储库中投票最多的 API 建议 – 允许用户选择文件夹的 OpenFolderDialog 控件 – 以及文…

Mysql数据库管理用户

Mysql数据库管理用户 一、管理用户1.1、用户创建1.2、 查看用户信息1.3 、重命名用户1.4、 删除用户1.5、 修改当前登录用户密码1.6、修改其他用户密码1.7、 忘记密码的解决办法 二、数据库用户授权2.1、 权限的授予2.2、 查看权限2.3、 撤销用户权限 一、管理用户 1.1、用户创…

如何设置代理ip服务器地址

在今天的互联网环境中,代理服务器在保护个人隐私和规避网络限制方面扮演着重要的角色。设置代理服务器地址的方式主要取决于你使用的具体软件或编程语言。在本文中,我们将分别介绍如何在Python和Java中使用HTTP代理服务器、SOCKS代理服务器以及代理池。 …

四、二叉树-上(Binary tree)

文章目录 一、算法核心思想二、算法模型(一)回溯1.[104.二叉树的最大深度](https://leetcode.cn/problems/maximum-depth-of-binary-tree/)(1)思路(2)代码(3)复杂度分析 2.[144.二叉…

39 | selenium基础架构,UI测试架构

什么是测试基础架构? 测试基础架构指的是,执行测试的过程中用到的所有基础硬件设施以及相关的软件设施。因此,我们也把测试基础架构称之为广义的测试执行环境。通常来讲,测试基础架构主要包括以下内容: 执行测试的机器…

进化的京东云DaaS:向大模型要解

通过新的DaaS大模型模式,京东云想要为企业提供的增长路径,恰是从最原始的“要数据”真正进阶到最终的“出效果”,将大模型和京东对增长的理解封装到整个产品矩阵中,帮助企业构建最适合AI时代的增长底盘。 作者|皮爷 出品|产业…

Xamarin.Android实现App内版本更新

目录 1、具体的效果2、代码实现2.1 基本原理2.2 开发环境2.3 具体代码2.3.1 基本设置2.3.2 系统的权限授予2.3.3 进度条的layout文件2.3.4 核心的升级文件 3、代码下载4、知识点5、参考文献 1、具体的效果 有事需要在程序内集成自动更新的功能,网上找了下&#xff…

【开发篇】二、属性绑定与校验

文章目录 1、ConfigurationProperties自定义Bean属性绑定2、EnableConfigurationProperties注解3、ConfigurationProperties第三方Bean属性绑定4、松散绑定5、常用计量单位6、数据校验7、yaml绑定值的坑--关于进制 1、ConfigurationProperties自定义Bean属性绑定 前面读取yaml…