2017-07-23 190 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仍然不会工作,因为它会给你数组中的字节数,而不是元素数。