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