将常量浮点*转换为垫子

convert const float* into Mat

本文关键字:转换 常量      更新时间:2023-10-16

我想在opencv 2.4.11中将const 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));

这是没有用的。请问有什么帮助吗?

你的问题在这里:

sizeof(*svv)

这不会给你数组中元素的数量;它给你svv指向的第一个元素的大小。由于这是一个floatsizeof给你4

您无法从指向数组的指针中分辨出数组的大小。您必须知道数组的长度并直接传递该值,或者使用某个数组类。

请注意,即使您传递了数组本身,sizeof仍然无法工作,因为它会为您提供数组中的字节数,而不是元素数。