![](/img/trans.png)
[英]OpenCV: src.size() == dst.size() && dst.type() == CV_32FC1 Error in .Net C#
[英]OpenCV: src.depth() == dst.depth() && src.size == dst.size exception
我有一个计算旋转和平移矩阵的代码,如下所示:
matrix Matrix<double> rt = new Matrix<double>(3, 4);
if (positiveCount[0] > positiveCount[1])
{
rt = R[0].ConcateHorizontal(T[0].GetCol(2));
}
else
{
rt = R[1].ConcateVertical(T[1].GetCol(2));
}
我得到的错误如图所示的图像 ,
我检查了所有矩阵和元素,所有大小都匹配。
有人遇到过同样的错误吗?
问题涉及矩阵尺寸的适应性问题。
在其他部分:
rt = R[1].ConcateVertical(T[1].GetCol(2));
是错误的,rt是3 * 4矩阵,R [1]是3 * 3,T [1]的第二列是3 * 1
因此,如果我们想水平地将T [1] .GetCol(2)添加到R [1],我们将其粘贴到矩阵R上以获得3 * 4矩阵。 当我们将行/列追加到另一个矩阵时,应该有一个大小匹配。
因此应将其替换为:
rt = R[1].ConcateHorizontal(T[1].GetCol(2));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.