2013-06-12 39 views
-2

您好我的訓練數據包含長整數的類型(like 1.6448e-43, -6.08498e-36)。這OpenCV的數據類型,我應該在下面的代碼中使用:列車數據必須是浮點矩陣的函數cvCheckTrainData運行時錯誤

Mat training_data = Mat(NUMBER_OF_TRAINING_SAMPLES, 
       ATTRIBUTES_PER_SAMPLE, *HERE*); 

當我使用下面的數據類型,它給我上面說的運行時錯誤:當使用開放式的簡歷隨機森林

Mat training_data = Mat(NUMBER_OF_TRAINING_SAMPLES, 
       ATTRIBUTES_PER_SAMPLE, CV_64FC1); 

,即CVTrees

回答

1

您的數據需要double類型,因此Mat的正確類型應該是CV_64F(與CV_64FC1相同)。但是,一些OpenCV函數無法處理任何類型的數據,並且他們可能只是預期的。在你的情況下,cvCheckTrainData函數可能會預期數據的類型爲CV_32F,即Matfloat's。嘗試一下,但在這種情況下,你的數據會失去一些精確度。

+0

嗨。我正在使用開放式隨機森林cvTrees。有沒有可能爲此使用CV_64F? –

+0

你的意思是CvRTrees?根據文檔(http://docs.opencv.org/modules/ml/doc/random_trees.html?highlight=random%20forest#cvrtrees-train),:: train函數需要CV_32F,即float數據。 – ChronoTrigger

相關問題