2017-07-23 165 views
0

我想在opencv 2.4.11中將const float *數組轉換爲Mat數組。 我試過這個:將const float float轉換成Mat

const float *svv = svm->get_support_vector(0);//this method returns const float* 
cv::Mat sv= cv::Mat(1, sizeof(*svv), CV_32F, const_cast<float *>(svv)); 

這是沒用的。有任何這方面的幫助嗎?

回答

1

你的問題是在這裏:

sizeof(*svv) 

這不會給你數組中元素的個數;它會爲您提供svv指向的第一個元素的大小。由於這是float,sizeof會給你4

您不能從指向數組的指針指出數組的大小。您必須知道數組的長度並直接傳遞該值或使用某個數組類。

請注意,即使您已經通過陣列本身,sizeof仍然不會工作,因爲它會給你數組中的字節數,而不是元素數。