ros订阅图片python_使用python订阅ROS sensor_msg/Image_黄良懿的博客-程序员秘密

技术标签: ros订阅图片python  

我正在尝试订阅一个由vrep视觉传感器发布的ROS节点。下面是我的代码,在使用内置网络摄像头时可以正常工作:import rospy

from sensor_msgs.msg import Image

from std_msgs.msg import String

from cv_bridge import CvBridge, CvBridgeError

import cv2

import numpy as np

import tensorflow as tf

import classify_image

class RosTensorFlow():

def __init__(self):

classify_image.maybe_download_and_extract()

self._session = tf.Session()

classify_image.create_graph()

self._cv_bridge = CvBridge()

self._sub = rospy.Subscriber('image', Image, self.callback, queue_size=1)

self._pub = rospy.Publisher('result', String, queue_size=1)

self.score_threshold = rospy.get_param('~score_threshold', 0.1)

self.use_top_k = rospy.get_param('~use_top_k', 5)

def callback(self, image_msg):

try:

cv_image = self._cv_bridge.imgmsg_to_cv2(image_msg, desired_encoding="passthrough")

except CvBridgeError as e:

print(e)

# copy from

# classify_image.py

image_data = cv2.imencode('.jpg', cv_image)[1].tostring()

# Creates graph from saved GraphDef.

softmax_tensor = self._session.graph.get_tensor_by_name('softmax:0')

predictions = self._session.run(

softmax_tensor, {'DecodeJpeg/contents:0': image_data})

predictions = np.squeeze(predictions)

# Creates node ID --> English string lookup.

node_lookup = classify_image.NodeLookup()

top_k = predictions.argsort()[-self.use_top_k:][::-1]

for node_id in top_k:

human_string = node_lookup.id_to_string(node_id)

score = predictions[node_id]

if score > self.score_threshold:

rospy.loginfo('%s (score = %.5f)' % (human_string, score))

self._pub.publish(human_string)

def main(self):

rospy.spin()

if __name__ == '__main__':

classify_image.setup_args()

rospy.init_node('rostensorflow')

tensor = RosTensorFlow()

tensor.main()

以及我在vrep中的非线程子脚本,基本上是从rosinterfacetopicup复制的blisherAndSubscriber.ttt教程:

^{pr2}$

我用的是:python image_recognition.py

我没有收到错误消息,但是没有输出。你能给我一个提示我需要改变什么吗?我做了很多研究,但到目前为止没有任何成功。在

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_31304499/article/details/112808754

智能推荐

web应用程序安全工具和资源(漏洞银行 收集整理)_weixin_30325971的博客-程序员秘密

Web应用程序安全工具组织OWASP-http://www.owasp.org/开放式Web应用程序安全项目(OWASP)是一个501(c)3全球非营利性慈善组织,致力于提高软件的安全性Web应用防火墙ModSecurity-http://www.modsecurity.org/ModSecurity是一个用于实时Web应用程序监控,日...

Ubuntu安装anaconda和pytorch的几个总结_MoonJian的博客-程序员秘密

Ubuntu安装anaconda和pytorch的几个总结1. conda的几个镜像清华镜像conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn...

EDA与VHDL题目——38译码器_vhdl使用with select完成38译码器_Alexa2077的博客-程序员秘密

EDA与VHDL题目——38译码器代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; --调用库函数ENTITY trans38 IS --结构体PORT(A,B,C:IN STD_LOGIC; Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END trans38;ARCHITECTURE dec_behave OF trans38 IS SIGNAL sel:STD_LOGIC_VECTOR(

ELMo算法详解_lzk_nus的博客-程序员秘密

ELMoELMo来自于论文《Deep contextualized word representations》,介绍了一种高效的动态词向量。在摘要部分,作者提到词向量主要是用来解决两大问题:单词使用的复杂性,例如语法、语义不同语境下的单词使用,例如同义词传统的Word2Vec或者Glove只能解决第一个问题,但是他们本身都是静态的词向量,也就是说每个词的向量化表示是固定的。但是很多词在不同的语境下表达的意思是完全不同的。例如“我去洗手间方便一下”和“你今晚几点方便”这两句话中的“方便”表达的意思

专升本C语言学习--第九章 结构体_学士帽c语言课程免费_liangpi_hero的博客-程序员秘密

笔记目录第九章 结构体结构体一般格式结构体数组typedef取别名结构体指针第九章 结构体构体就是用户自定义数据类型。结构体一般格式struct1.struct 结构体名称{成员列表;};注意:结构体后加 ;// 2020/11/16// C#include <stdio.h>#include <string.h>//学生类型:学号,姓名,性别m,fstruct Student { int id; char name[20]; char se

从前端性能优化引申出来的5道经典面试题(值得收藏)_傲娇的koala的博客-程序员秘密

作者:一阵风,一枚只想安静写代码的程序员,来自程序员成长指北 https://juejin.im/post/6888848660591968264前端优化是一个大的课题,需要花好多...

随便推点

北航与西安交大计算机专业对比,都在关注!哈工大、西安交大、北航等五大双一流高校是否值得报考..._paizhangpi的博客-程序员秘密

导读,规划近期,我们对考生和家长的强基择校因素做了一个简单调研。通过对比投票结果,我们发现专业实力、院校层次、后续培养是大家择校最为关注的三个方面。本文就来盘点一下哈工大、西安交大、北航、南开、同济这五个历年热门报考院校的具体情况,方便大家做志愿参考。一、哈尔滨工业大学1院校层次院校名片:211/985/双一流A类/C9隶属于工业和信息化部,以理工为主,理工管文经法艺等多学科协调发展,曾被誉为工程...

sql语句中出现笛卡尔乘积 SQL查询入门篇_weixin_30740581的博客-程序员秘密

2014-12-29凡尘工作室阅34985转95本篇文章中,主要说明SQL中的各种连接以及使用范围,以及更进一步的解释关系代数法和关系演算法对在同一条查询的不同思路。多表连接简介在关系数据库中,一个查询往往会涉及多个表,因为很少有数据库只有一个表,而如果大多查询只涉及到一个表的,那么那个表也往往低于第三范式,存在大量冗余和异常。因此,...

Eclipse IDE for C/C++ Developers和MinGW安装配置C/C++开发学习环境详解_aolizhen5920的博客-程序员秘密

操作系统:Windows 7JDK版本:1.6.0_33Eclipse版本:Juno Release1、安装JDK,并配置好其环境变量(1)JDK的下载和安装JDK官方下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html下载你需要的相应版本的JDK并安...

前端项目node-sass安装报错的解决方案_柯晓楠的博客-程序员秘密

前端项目中使用了 sass ,在使用 npm install 命令初始化依赖时经常会报 node-sass 安装失败的错误。报错的原因有以下几种:node-sass需要Python环境,本地没有安装Python环境;本地安装Python环境,但是版本高于Python2;本地没有Python环境,但是也没有其他的编译工具,例如 node-gyp ;上面只一部分引起 node-sass 报错的原因,如果已经有编译环境还报错的话,有可能是因为npm源镜像的问题。解决方案:安装 Python2 环

推荐文章

热门文章

相关标签