Python, преобразовать str в тип дескриптора для серфинга

Я хочу прочитать тип дескриптора из базы данных и использовать его для сравнения с изображениями с помощью метода серфинга, проблема заключается в том, как преобразовать дескрипторы из строки в массив ndarray.

#!/usr/bin/python
detector = cv2.SURF(400, 5, 5)
matcher = cv2.BFMatcher(cv2.NORM_L2)
kp1, desc1 = detector.detectAndCompute(img1, None)     
cursor.execute(" SELECT * FROM visage WHERE id=%s", 1)
row = cursor.fetchone()
descriptor=row[6]
desc2=numpy.array(descriptor, dtype = numpy.float32).reshape((1,1))
kp_pairs = match_images(kp1, desc1 , kp2, desc2) 

Ошибка:

pythonw -u "surf v2.py" Traceback (последний последний вызов): файл "surf v2.py", строка 138, в desc2=numpy.array(дескриптор, dtype = numpy.float32).reshape((1,1 )) ValueError: неверный литерал для float(): [[ 1.55181286e-03 1.55181286e-03 -2.10662147e-05 ..., 1.82572391e-03 0.00000000e+00 0.00000000e+00] [ 7.83637588e+05] -03 3,83123639e-03 ..., 1,95306598e-03 0,0000000

Код выхода: 1


person user3077923    schedule 07.12.2013    source источник


Ответы (1)


Это зависит от того, как выглядят струны. Возможно, сработает numpy.fromstring. В противном случае проверьте, как создается строка, и используйте обратную функцию.

person littleimp    schedule 09.12.2013