我试图发送一个带有图像关键点和描述符的服务器请求作为一个json对象。。。这是我的密码。。在
import cv2
import requests
import json
imgDetail = {'keypoints': '', 'descriptor': ''}
sift = cv2.xfeatures2d.SIFT_create()
img = cv2.imread('images/query.jpg', 0)
kp, des = sift.detectAndCompute(img, None)
des = des.tolist()
imgDetail['keypoints'] = kp
imgDetail['descriptor'] = des
jsonDump = json.dumps(imgDetail)
resp = requests.post("http://localhost:5000", json=jsonDump, headers={'content-type': 'application/json'})
但它给了我以下错误。。。。。。。。。。。在
^{pr2}$有人能给出解决办法吗?在
如果您看到您的kp变量,它是一个关键点实例的列表。 i、 e:kp看起来像
[<KeyPoint 0x109f6da50>, <KeyPoint 0x109f6dd50>, <KeyPoint 0x10a1b2060>, <KeyPoint 0x10a1b2090>, <KeyPoint 0x10a1b20c0>, <KeyPoint 0x10a1b2030>, <KeyPoint 0x10a1a0a80>, <KeyPoint 0x10a1a0660>,...]
当您尝试转储imgDetail时,由于KeyPoint实例无法序列化,因此keypoints(即:kp)将出错。在
您需要遍历kp列表并将实例更改为dict
KeyPoint类没有tolist()或dict\uu()方法。因此,您可能需要创建自己的dict并传递给json.dumps文件(). 在
相关问题 更多 >
编程相关推荐