У меня есть рабочая станция под управлением Python2 со средой ROS, которая получает изображение с камеры от робота и отправляет его по сети на компьютер Python3, используя стандартную библиотеку socket
.Кажется, я не могу правильно распаковать изображение opencv ndarray.
Я могу успешно передать простые данные в виде списков, но при попытке передать изображение возникает ошибка.
НаСистема Python2, я получаю свое изображение следующим образом:
img = CvBridge().imgmsg_to_cv2(img_data, desired_encoding='bgr8') # Convert from ROS image to OpenCV image
Получение ndarray.Я сериализирую это с:
data = pickle.dumps(img, protocol=0)
И я отправляю это.Вернувшись на компьютер Python3, я пытаюсь распаковать его, используя:
response = pickle.loads(data_in, encoding='latin1') # To read a Python2 dump
На этом этапе я получаю следующую ошибку:
_pickle.UnpicklingError: the STRING opcode argument must be quoted
Единственные другие решения, которые я нашел адресслучаи, когда данные передавались между машинами Unix и Windows, что не является моим случаем.