ros中同时订阅两个topic(2张图像)合并成一个topic(1张图像)
2019-12-06 15:42:39
先暂时做个资料保存
要同时用两个红外相机,但是没有做硬件上的 时间戳同步,就是笔记本上同时插着两个相机。
两个topic发布各自相机的图像,然后要有个节点同时订阅两个topic并把两张图像拼接成一张图像再做处理。
直接搜 ros sub two topic结果都是2个callback函数,各自处理各自的topic,和想要的不太一样。
自己融合两个线程中时间戳不那么严格一致的数据太麻烦了
想要的是两张图片的时间戳如果相近,就当做是在同一时刻采集的,然后合成一张图像或者一个topic。
然后发现了下面的链接:
https://www.cnblogs.com/gdut-gordon/p/10293446.html
http://wiki.ros.org/message_filters#Example_.28Python.29-1
https://blog.csdn.net/chishuideyu/article/details/77479758
应该是一个 message_filters ,使用其 ApproximateTime Policy ,然后就只有一个callback了
https://stackoverflow.com/questions/48830056/use-data-from-multiple-topics-in-ros-python
这个看起来也有点用,先保存
2019-12-06 16:42:49
下面是部分代码,直接改的上面的链接里的代码,384*288 的两张图像
def callback(left_data, right_data):
temper_left = bridge1.imgmsg_to_cv2(left_data, "mono16")
temper_right = bridge2.imgmsg_to_cv2(right_data, "mono16") disp1 = cv2.normalize(temper_left, None, 0, 255, cv2.NORM_MINMAX)
disp1 = disp1.astype(np.uint8)
disp_color1 = cv2.applyColorMap(disp1, color_map_choice ) disp2 = cv2.normalize(temper_right, None, 0, 255, cv2.NORM_MINMAX)
disp2 = disp2.astype(np.uint8)
disp_color2 = cv2.applyColorMap(disp2, color_map_choice ) disp = np.concatenate((disp_color1, disp_color2), axis=1 ) cv2.imshow("Image window", disp)
cv2.waitKey( 10 ) def gotdesired():
rospy.init_node('image_converter', anonymous=True) sub_left = message_filters.Subscriber("left_infra", Image, queue_size=1, buff_size=110592*6 )
sub_right = message_filters.Subscriber("right_infra", Image, queue_size=1, buff_size=110592*6 ) ts = message_filters.ApproximateTimeSynchronizer([sub_left, sub_right], 10, 0.1, allow_headerless = True)
ts.registerCallback(callback) # spin() simply keeps python from exiting until this node is stopped
rospy.spin()
ros中同时订阅两个topic(2张图像)合并成一个topic(1张图像)的更多相关文章
- 如何将两个/多个PDF文件合并成一个?
原文链接:https://docsmall.com/blog/how-to-merge-pdf 工作中我们总会遇到将PDF合并的问题,比如: 多次扫描的PDF文件,需要合并到一个 PDF文件需要追加一 ...
- Clojure:将两个list合并成一个map
假设我们有两个list,分别是: (def a [“one” “two” “three”]) (def b [1 2 3]) 我们要把它们合为一个键值对应的map,做法很简单: 1. 先将a和b合为一 ...
- SQL Server 2005中的分区表(四):删除(合并)一个分区(转)
在前面我们介绍过如何创建和使用一个分区表,并举了一个例子,将不 同年份的数据放在不同的物理分区表里.具体的分区方式为: 第1个小表:2010-1-1以前的数据(不包含2010-1-1). 第2个小表: ...
- SQL Server 2005中的分区表(四):删除(合并)一个分区
在前面我们介绍过如何创建和使用一个分区表,并举了一个例子,将不 同年份的数据放在不同的物理分区表里.具体的分区方式为: 第1个小表:2010-1-1以前的数据(不包含2010-1-1). 第2个小表: ...
- mysql中的多行查询结果合并成一个
SELECT GROUP_CONCAT(md.data1) FROM DATA md,contacts cc WHERE md.conskey=cc.id AND md.mimetype_id= 5 ...
- 将两个DataTable合并成一个DataTable
转载自 http://blog.csdn.net/wangxiaojia42121/article/details/53330464 谢谢 //两个结构一样的DT合并DataTable DataTab ...
- remap——ROS中修改订阅的节点名称
跑数据集或者使用不同传感器时,难免会遇到需要修改topic名称的时候,此时可以有两种做法. 一.直接修改源码.如果有launch文件,则修改launch文件对应的topic 二.直接进行remap操作 ...
- python中如何将两个list合并成一个list,不用for语句
1, add 2, 用list的extend方法,L1.extend(L2),该方法将参数L2的全部元素添加到L1的尾部,例如: 3, 用切片(slice)操作,L1[len(L1):len(L1)] ...
- 牛客网:将两个单调递增的链表合并为一个单调递增的链表-Python实现-两种方法讲解
方法一和方法二的执行效率,可以大致的计算时间复杂度加以对比,方法一优于方法二 1. 方法一: 思路: 1. 新创建一个链表节点头,假设这里就叫 head3: 2. 因为另外两个链表都为单调递增,所 ...
随机推荐
- Python简介以及入门
一. Python简介 1. Python的诞生 Python的创始人是吉多·范罗苏姆(Guido van Rossum),荷兰人.1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯 ...
- volatile 关键字(修饰变量)
目录 volatile 关键字(修饰变量) 1. 含义 2. 作用 3. 如何保证可见性 4. 如何禁止指令重排序优化 5. volatile 是不安全的 6. volatile 不适用场景 vola ...
- hdu 1572 全排列的搜索
好久没写搜索的题目了 复习一下/./ 这道题目是暴力的全排列#include<cstdio> #include<iostream> #include<cstring> ...
- vue统一注册组件
文件夹下面组件数量较多,如果每一个组件先import然后在 components,虽然灭有问题,但是会导致代码量大,而且不直观 解决办法: 将图元组件进行统一注册 新建一个pixels文件,文件里面的 ...
- TVM图优化(以Op Fusion为例)
首先给出一个TVM 相关的介绍,这个是Tianqi Chen演讲在OSDI18上用的PPThttps://files.cnblogs.com/files/jourluohua/Tianqi-Chen- ...
- DDOS 攻击的防范教程--转载自阮一峰的博客
一个多月前,我的个人网站遭受 DDOS 攻击,下线了50多个小时.这篇文章就来谈谈,如何应对这种攻击. 需要说明的是,我对 DDOS 并不精通,从没想过自己会成为攻击目标.攻击发生以后,很多素昧平生的 ...
- RobHess的SIFT代码解析步骤三
平台:win10 x64 +VS 2015专业版 +opencv-2.4.11 + gtk_-bundle_2.24.10_win32 主要参考:1.代码:RobHess的SIFT源码 2.书:王永明 ...
- SpringAOP的实现方式
1.使用SpringAPI实现AOP <aop:config> <!-- 切入点:需要操作的目标类中的目标方法 execution中只需要修改全类名 --> <aop:p ...
- 不重启linuxVMWare虚拟机添加虚拟光驱、硬盘
方法/步骤1: VMware找到要添加虚拟光驱位置,先右击点击设置,如图所示: 步骤2: 出现此界面之后点击添加: 步骤3: 直接点击下一步,如下图所示: 点击完成,天机硬盘就完毕了. 磁盘添加完成, ...
- Hadoop_15_MapRduce_案例1_Wordcount 单词统计
1.Wordcount示例编写: MapReduce采用”分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各 个节点的中间结果,得到最终结果.简单地说 ...