将boost数组转换为open cv mat

时间:2016-05-16 11:55:24

标签: c++ opencv boost

我尝试将 boost :: array rightCamInfo.K 转换为opencv Mat cv :: Mat K 。我没有为这个设置找到任何函数,所以我写了一个迭代方法:

float tempK[9];
cv::Mat K;
for (int i = 0; i < 9; i++) {
   tempK[i] = rightCamInfo.K[i];
}
K = cv::Mat(3, 3, CV_64F, &tempK);

但这给了我奇怪的结果。给定数据的范围在400和0之间,结果矩阵大约为5 * 10 ^( - 315)。显然有一些转换错误。怎么了?我是否为矩阵选择了错误的类型,或者这种数组类型是否适合?

1 个答案:

答案 0 :(得分:5)

您应该使用ng-if="movie.released && movie.inTheaters"而不是CV_32F并指向CV_64F的第一个元素

tempK

K = cv::Mat(3, 3, CV_32F, &tempK[0]);