向量的OpenCV矢量到cv :: Mat

Chr*_*Geo 2 c++ opencv vector mat

我有std::vector<std::vector<double>>n行和m列的结构中的某些值,我想将其转换为等效的cv :: Mat对象.这是我一直在使用的代码,但我收到一个错误:

dctm是一个本地参数,定义为: std::vector<std::vector<double>>

cv::Mat dctmat = cvCreateMat(dctm.size(), dctm[0].size(), CV_16SC1);
for (size_t i = 0; i < dctm.size(); i++) {
    for (size_t j = 0; j < dctm[i].size(); j++) {
        dctmat.at<double>(i, j) = dctm[i][j];
    }
}
Run Code Online (Sandbox Code Playgroud)

ced*_*rou 5

dctmat有一种类型CV_16SC1,表示签名短的矩阵.但是你试图用dctmat.at<double>(i, j)不连贯的方式访问它.将矩阵定义为CV_64FC1或使用它来访问它dctmat.at<short>(i, j)(第一种解决方案更好,因为你有一个向量double).