code: def image(cam):
      
      # Set output stream title and pull first message
      yield marv.set_header(title=cam.topic)
      msg = yield marv.pull(cam)
      if msg is None:
          return
  
      # Deserialize raw ros message
      pytype = get_message_type(cam)
      rosmsg = pytype()
      rosmsg.deserialize(msg.data)
  
      # Write image to jpeg and push it to output stream
      name = '{}.jpg'.format(cam.topic.replace('/', ':')[1:])
      imgfile = yield marv.make_file(name)
      img = imgmsg_to_cv2(rosmsg, "rgb8")
      cv2.imwrite(imgfile.path, img, (cv2.IMWRITE_JPEG_QUALITY, 60))
      yield marv.push(imgfile)
docs: Extract first image of input stream to jpg file.
  
      Args:
          cam: Input stream of raw rosbag messages.
  
      Returns:
          File instance for first image of input stream.