【发布时间】:2015-05-29 07:57:20
【问题描述】:
我有一个函数,它返回一个 4 行 1 列的 opencv Mat。它在 for 循环中运行,迭代 2 到 100 次。
我需要的是,将返回的列复制到一个新的 Mat 中,这样每次迭代都会添加一个新列。
我有(伪):
cv::Mat ResultMat(4, 1, CV_64F);
Mat returnMat(4, 1, CV_64F);
for (int i = 0; i < iterations; i++)
{
returnMat= (function that returns a 4x1 Mat);
returnMat.col(0).copyTo(ResultMat.col(0));
}
效果很好,但每次都会覆盖 Resultmat 列。
用
替换最后一行returnMat.col(0).copyTo(ResultMat.col(i));
导致异常错误。
编辑:如果我将 ResultMat 创建为“Resultmat(4, 100, CV_64F)”,它可以工作,但我需要它自行调整列数...
如何动态地将列添加到 ResultMat,每个循环一个?
【问题讨论】:
-
不要使用
return作为变量名! -
抱歉,这只是伪代码!为了清楚起见,我会更改它。
-
hconcat 用于动态方法
-
@Ben 的迭代次数不等于 ResultMat 所需的列数吗?
-
您好,迭代次数会改变。我真的希望生成的垫子中的列能够反映数字。谢谢!