【发布时间】:2015-04-13 18:19:14
【问题描述】:
我正在填充我的cv::Mat matrix(size, size, cv::DataType<double>::type);(也尝试过CV_64F 和CV_64FC1 都产生相同的结果)。我正在遍历size 并这样做:matrix.data[x*size+y] = someFunc(); 其中someFunc() 返回一个双精度值。问题是由于某种原因,矩阵截断了双精度并仅存储整数部分。为了测试,我创建了以下 sn-p
cv::Mat mat(10, 10, CV_64F);
for (int i=0; i<10; ++i){
for (int j=0; j<10; ++j){
mat.data[i*10 + j] = 1.9;
std::cout << double(mat.data[i*10+j]) << std::endl; // outputs 1
}
}
我做错了什么?我应该如何正确填充双精度的cv::Mat()?
【问题讨论】: