gpt4 book ai didi

c++ - 将boost数组转换为opencv mat

转载 作者:搜寻专家 更新时间:2023-10-31 00:30:23 24 4
gpt4 key购买 nike

我尝试将 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)。所以很明显存在一些转换错误。怎么了?是我为矩阵选择了错误的类型还是这个数组类型不合适?

最佳答案

您应该使用 CV_32F 而不是 CV_64F 并指向 tempK 的第一个元素

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

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

关于c++ - 将boost数组转换为opencv mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37253354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com