Как загрузить данные SVM из файла в OpenCV 3.1?

У меня проблема с загрузкой обученного SVM из файла. Я использую Python и OpenCv 3.1.0. Я создаю объект SVM:

svm = cv2.ml.SVM_create()

Затем я тренирую svm и сохраняю в файл:

svm.save('data.xml')

Теперь я хочу загрузить этот файл в другой скрипт Python. В документах я не могу найти какие-либо методы, чтобы сделать это.

Есть ли хитрость для загрузки SVM из файла? Спасибо за любые ответы.

1 ответ

Я думаю, что это немного сбивает с толку, что нет метода svm.load(filepath) как аналога svm.save(filepath), но когда я читаю справку по модулю, для меня имеет смысл, что SVM_load является потомком cv2.ml (брат SVM_create).

Убедитесь, что ваша основная ветка opencv обновлена ​​(в настоящее время версия 3.1.0-dev)

>>> import cv2
>>> cv2.__version__
'3.1.0-dev'
>>> help(cv2.ml)

возвращается

SVM_create(...)
    SVM_create() -> retval

SVM_load(...)
    SVM_load(filepath) -> retval

так что вы можете просто использовать что-то вроде:

if not os.path.isfile('svm.dat'):
    svm = cv2.ml.SVM_create()
    ...
    svm.save('svm.dat')
else:
    svm = cv2.ml.SVM_load('svm.dat')
Другие вопросы по тегам