gpt4 book ai didi

c++ - OpenCV convertTo 是如何转换的?

转载 作者:行者123 更新时间:2023-11-28 07:01:03 34 4
gpt4 key购买 nike

我将灰度模式的图像加载到 Mat image 中.我用 image.convertTo(image, CV_32F);将数据类型转换为 double 。我想将图像转换成 vector<double> ,所以我按以下方式遍历矩阵:

    int channels = image.channels();
int nRows = image.rows;
int nCols = image.cols;
vector<double> vectorizedMatrix (nRows*nCols);

if (image.isContinuous()) {
nCols *= nRows;
nRows = 1;
}



double* pI;
int k = 0;

for (int i=0; i<nRows; i++) {
pI = image.ptr<double>(i);
for (int j=0;j<nCols;j++) {
vectorizedMatrix.at(k) = pI[j];
k++;
}
}

return vectorizedMatrix;

检查我获得的数据时,我看到 10^10 范围内的巨大值,这是不可能的。我是否错误地遍历了矩阵,或者函数 convertTo 做了一些我不知道的事情?

最佳答案

“我使用 image.convertTo(image, CV_32F); 将数据类型转换为 double”

不,这将转换为 float 。如果你想要 double,请使用:

image.convertTo(图像, CV_64F);

关于c++ - OpenCV convertTo 是如何转换的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22464560/

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