AWS Rekognition检测标签无效的图像编码错误

时间:2018-08-22 03:56:47

标签: python boto3 amazon-rekognition

我正在使用boto3调用识别的检测标签方法,该方法将图像(以base64编码字节的形式)作为输入。但是,我不断收到InvalidImageFormatException,我不明白为什么。我已经阅读了文档并查看了一些示例,但我真的不知道为什么会收到此错误。

下面是我的代码以及到目前为止我已经尝试过的

self.rekog_client = boto3.client('rekognition', 'us-east-1')
with open('abc100.jpg', "rb") as cf:
    base64_image=base64.b64encode(cf.read()).decode("ascii")
    #also tried this) ==> base64_image=base64.b64encode(cf.read())
resp = self.rekog_client.detect_labels(Image={'Bytes': base64_image})

输出/异常:

botocore.errorfactory.InvalidImageFormatException: An error occurred(InvalidImageFormatException) when calling the DetectLabels operation: Invalid image encoding

1 个答案:

答案 0 :(得分:0)

弄清楚了,该方法实际上需要base64编码的 binary 数据,而在文档中并没有真正指定该数据,该文档只是说base64编码的字节。

self.rekog_client = boto3.client('rekognition', 'us-east-1')
with open('cat_pic600.jpg', "rb") as cf:
        base64_image=base64.b64encode(cf.read())
        base_64_binary = base64.decodebytes(base64_image)
resp = self.rekog_client.detect_labels(Image={'Bytes': base_64_binary})