2013-12-18 22 views
0

我想看看svmPredcit()在opencv中完成的分類結果。我已經實施了兩種方法來查看結果。首先,看看分類邊界的距離。其次,看預測的結果(是或否)。如何從svmPredict()在opencv中獲得分類結果?

float predict = svm.predict(tryme, true); 
    cout<<"\n The result of prediction is: "<<predict; 

    bool result = svm.predict(tryme, false); 
    cout<<"\n The result of prediction in bool: "<<result<<"\n"; 

問題:雖然預測在輸入圖像中的變化而改變的值(有時有時霧化+ ve -ve),但仍我總是從第二COUT語句獲取「1」(即,的值結果總是一個)。

+0

bool的結果,你必須在「標籤」的陣列,以養活去訓練,記得嗎?那個最適合你的svm.predict()值的是anwer。 – berak

+0

@Berak:是的,我做到了。當我訓練我的svm時,我貼上了標籤。而且,我認爲這就是爲什麼「預測」的價值正在改變(-ve或+ ve)。但爲什麼我無法得到'結果'/ – skm

回答

0

假設你的標籤是+1-1你的代碼應該是

bool result = svm.predict(tryme, false) > 0.0f; 

都轉換+ 1.0F和-1.0F在true

+0

的值,謝謝,現在它給了我0和1的結果。但是請問我能告訴我什麼是'> 0.0f'在做什麼? – skm

+0

這是一個表達式,用於測試'svm.predict()'的輸出是否大於零。 – Bull