2024-03-28 20:51:08 发布
网友
Iam正在使用kairos api进行人脸识别。我正在尝试注册一个图像。那个documentation这里说它也接受base64编码照片。所以我用64进制对图像进行编码,得到以下错误
{"Errors":[{"ErrCode":5000,"Message":"an invalid image was sent must be jpg or p ng format"}]}
我使用以下python代码发送请求
任何帮助都将不胜感激
我找到了问题的答案。您可以尝试不使用cv2读取图像,而是使用简单的原始二进制文件。cv2将它读入numpy数组,而您正在对numpy数组进行编码。像一个简单的文件一样阅读对我很有用,如下所示
with open ('messi.jpg','rb') as imgFh: img = imgFh.read()
试试这个。在
import cv2 import requests import base64 import json encoded_string = base64.b64encode(open("Face-images/Subject 9.jpg", 'r').read()) payload_dict = { "image":encoded_string, "subject_id": "Abhishek", "gallery_name": "MyGallery" } payload = json.dumps(payload_dict) headers={ 'Content-Type':'application/json', 'app_id':'app_id', 'app_key':'app_key' } request = Request('https://api.kairos.com/enroll', data=payload, headers=headers) response_body = urlopen(request).read() print(response_body)
不要给你的照片编码。也许他们接受了,但更难通过。检查此解决方案:
import requests files = {"image": (filename,open(location+'/'+filename,"rb"))} payload= {"subject_id":"Abhishek", "gallery_name":"MyGallery"} headers={'Content-Type':'application/json', 'app_id':'app_id', 'app_key':'app_key'} response = requests.post('https://api.kairos.com/enroll',headers=headers,data=payload,files=files,verify=False) print response.text
我找到了问题的答案。您可以尝试不使用cv2读取图像,而是使用简单的原始二进制文件。cv2将它读入numpy数组,而您正在对numpy数组进行编码。像一个简单的文件一样阅读对我很有用,如下所示
试试这个。在
不要给你的照片编码。也许他们接受了,但更难通过。检查此解决方案:
相关问题 更多 >
编程相关推荐