我想使用 opencvcv::Mat
函数push_back
向矩阵添加新行,但我想预先缓存矩阵的大小,以便不需要不断地重新分配数据。该cv::mat::reserve
函数有许多行参数,但这意味着您必须指定列数(首先是数据大小)。所以我假设下面的代码会在开始时给我一个我不想要的空行。有没有正确的方法来使用reserve
和push_back
?
cv::Mat M(1, size_cols, CV_32FC1);
M.reserve(size_rows);
for (int i = 0; i < size_rows; i++)
{
GetInputMatrix(A);
M.push_back(A.row(i));
}
注意:虽然示例代码没有显示它,但我不确定最终矩阵的确切大小,但我可以获得一个最大值大小来保留。