Почему одни и те же переменные с типом данных дают разные ответы? - PullRequest
0 голосов
/ 02 июля 2018

Я использую azure-cognitive-services , отправляя какое-то изображение и получая ответ, возникла проблема с типом данных 'bytes'.

Я отправил изображение, загруженное open(image_path, "rb").read(), которое имеет тип <class 'bytes'>, и отправил запрос requests.post(emotion_recognition_url, params=params, headers=header, data=byted_image), где данные имеют определение: :param data: (optional) Dictionary (will be form-encoded), bytes, or file-like object to send in the body of the :class:'Request'., и все хорошо и работает нормально.

Когда я попытался отправить изображение, захваченное из cv2.VideoCapture(0), которое возвращает numpy.ndarray, тогда оно преобразуется в байты на np.ndarray.tobytes(image), так что его dtype равен <class 'bytes'> и отправляется на конечную точку requests.post(). возвращается с ошибкой "{'error': {'code': 'InvalidImage', 'message': 'Ошибка декодирования, формат изображения не поддерживается.'}}" .

Примечания:

Я также пытался отправить атрибут порядка np.ndarray.tobytes() с помощью 'C', 'F' и даже None, и ничего не получалось.

Когда я сохраняю кадр с помощью cv2.imwrite() и перечитываю изображение снова с помощью open(image_path, "rb").read(), это работает, но это не лучшее решение.

...