2017-02-24 11 views
0

Java 용 opencv 3.2 (contrib 모듈과 함께 소스 빌드)를 사용하고 SURF + BOWKMeansTrainer를 사용하여 탐지하려고하지만 실행시 오류가 발생합니다.Java에서 opencv BOWKMeansTrainer를 사용하는 방법?

내 코드 :

//read jpg to variable trainMats 
//... 

//train 
Mat allDesc = new Mat(); 
int clusterCount = 30; 
FeatureDetector detector = FeatureDetector.create(FeatureDetector.SURF); 
DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.SURF); 
BOWTrainer bowTrainer = new BOWKMeansTrainer(clusterCount); 

for(int i = 0; i < trainMats.size(); i++) { 
    Mat trainMat = trainMats.get(i); 
    MatOfKeyPoint matOfKeyPoint = new MatOfKeyPoint(); 
    Mat desc = new Mat(); 
    detector.detect(trainMat, matOfKeyPoint); 
    extractor.compute(trainMat, matOfKeyPoint, desc); 
    allDesc.push_back(desc); 
} 

Mat dictionary = bowTrainer.cluster(allDesc); 

//... 

던져 오류 :

Exception in thread "main" java.lang.Exception: unknown exception 
    at org.opencv.features2d.BOWKMeansTrainer.cluster_1(Native Method) 
    at org.opencv.features2d.BOWKMeansTrainer.cluster(BOWKMeansTrainer.java:62) 

답변

0

는 OpenCV의 버전입니다. 사용해보기 2.4.11