【问题标题】:Can't publish Usb camera image with ROS CvBridge and OpenCV无法使用 ROS CvBridge 和 OpenCV 发布 USB 相机图像
【发布时间】:2017-07-17 10:03:06
【问题描述】:

我正在尝试使用 usb_camera、ros_bridge 发布一个 opencv 图像。主题已发布,但我看不到任何图像或错误。我可以看到 usb_camera 图像

class image_converter:
  def __init__(self):
    self.image_pub = rospy.Publisher("/image_converter/image_topic_2",Image, queue_size=10)
    self.bridge = CvBridge()
    self.image_sub =     rospy.Subscriber("/webcam/image_raw",Image,self.callback)

  def callback(self,data):
    try:
      cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8")
    except CvBridgeError as e:
      print(e)
    grey = cv2.cv_image(cv_image,(7,7))
    edges =cv2.canny(grey,15.0,30.0)

    try:
    self.image_pub.publish(self.bridge.cv2_to_imgmsg(edges, "bgr8"))
    except CvBridgeError as e:
      print(e)

def main(args):
  image_converter()
  rospy.init_node('image_converter', anonymous=True)
  try:
    rospy.spin()
  except KeyboardInterrupt:
    print("Shutting down")
  cv2.destroyAllWindows()

if __name__ == '__main__':
    main(sys.argv)

【问题讨论】:

  • 你解决了吗?

标签: python opencv camera usb ros


【解决方案1】:

在您的 main 函数中,您应该首先调用 rospy.init_node,然后再执行任何与 ROS 相关的事情,例如创建发布者/订阅者。

【讨论】:

  • 我改了main函数:rospy.init_node('image_converter', anonymous=True) image_converter()我还是看不到opencv图片
  • @user1849595 抱歉回复晚了。只是为了确定:您是否仔细检查了订阅主题/webcam/image_raw 上发布的图像?例如,您可以通过调用 rostopic echo /webcam/image_raw 来做到这一点。
【解决方案2】:

不确定,我缺乏疯狂的 python 技能,但你只是调用一个类的“构造函数”而不将它分配给任何东西,这是否意味着它的引用计数为 0 并自动被垃圾收集?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多