opencv 怎么将vector<double> XValues, std::vector<double> YValues 放入到mat中两行
时间: 2023-09-24 14:09:23 浏览: 132
matlab上使用opencv
3星 · 编辑精心推荐
将vector<double> XValues和YValues放入到Mat中,每个向量对应矩阵的一行,可以使用以下代码:
```c++
std::vector<double> XValues, YValues;
int Size = XValues.size();
cv::Mat mat_array(2, Size, CV_64F);
// 将XValues和YValues数据复制到Mat的两行中
memcpy(mat_array.row(0).data, XValues.data(), XValues.size()*sizeof(double));
memcpy(mat_array.row(1).data, YValues.data(), YValues.size()*sizeof(double));
```
首先,定义了两个vector<double>对象XValues和YValues,并根据XValues的大小定义了一个2行Size列的Mat对象mat_array。然后,使用memcpy函数将XValues和YValues中的数据分别复制到Mat的两行中。
需要注意的是,这里使用memcpy函数的前提是vector和Mat对象的内存布局是相同的,即在内存中都是连续的double类型数据。如果vector和Mat对象的内存布局不同,需要使用其他方法来实现数据的复制。
阅读全文