Как я могу инициализировать cv :: Mat с данными из массива с плавающей точкой

Мне нужно создатьcv::Mat переменная, которая инициализируется с моими данными изfloat * массив. Это должно быть основным, но у меня возникают проблемы с выяснением этого.

У меня есть код:

float *matrixAB = <120 floating point array created elsewhere>;
cv::Mat cv_matrixAB = cv::Mat(12, 10, CV_32F, &matrixAB);

ноcv_matrixAB никогда не содержитfloat значения, и что более важно, не совпадает с данными, содержащимися вmatrixAB.

Если я изменю строку на:

cv::Mat cv_matrixAB = cv::Mat(12, 10, CV_32F, matrixAB);

тогдаcv_matrixAB.data являются все0, Я также пытался использоватьCV_64F как тип, но я вижу то же поведение.

Может кто-нибудь помочь мне определить, где я иду не так? Согласноcv::Mat документация конструктора, я должен быть в состоянии предоставить свои данные в видеfloat * массив.

Обновить: немного больше информации здесь: даже следующий код не работает.printf дисплеи63что, конечно, не является ценностью вdummy_query_data.

float dummy_query_data[10] = { 1, 2, 3, 4,
                               5, 6, 7, 8 };
cv::Mat dummy_query = cv::Mat(2, 4, CV_32F, dummy_query_data);
printf("%f\n", (float)dummy_query.data[3]);

Ответы на вопрос(1)

Ваш ответ на вопрос