2016-07-04 5 views
3

파일에서로드 된 SVM로드에 문제가 있습니다. 나는 파이썬과 OpenCv 3.1.0을 사용한다. 다음으로, 나는 SVM을 훈련하여 파일에 저장OpenCV 3.1에서 파일로부터 SVM 데이터를로드하는 방법은 무엇입니까?

svm = cv2.ml.SVM_create() 

:

svm.save('data.xml') 

지금 내가 다른 파이썬 스크립트에서이 파일을로드 할 난에 의해 SVM 개체를 만듭니다. 문서에서 나는 그것을 할 수있는 방법을 찾을 수 없습니다.

파일에서 svm을로드하는 트릭이 있습니까? 모든 응답 주셔서 감사합니다.

답변

3

나는 svm.save (filepath)에 상응하는 svm.load (filepath) 메소드가 없다는 것을 혼란스럽게 생각하지만, 모듈 도움말을 읽을 때 SVM_load가 자식이라는 것을 의미한다. cv2.ml (SVM_create의 형제).

당신의 OpenCV의 마스터 분기

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

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

그래서 당신은 단순히 뭔가를 사용할 수있는 최신 (현재 버전 3.1.0-DEV)

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

반환 있는지 확인 :

if not os.path.isfile('svm.dat'): 
    svm = cv2.ml.SVM_create() 
    ... 
    svm.save('svm.dat') 
else: 
    svm = cv2.ml.SVM_load('svm.dat')