C 错误:输入参数的大小不匹配。三角点
我在VisualStudio上使用了函数cvTriangulatePoints(请参见文档:)。 当我每个图像有一个对应点(N=1)时,代码工作,但如果我添加第二个点(N=2),我会得到以下错误: “错误:输入参数的大小与cvTriangulatePoints中的<点数必须相同>”不匹配。” 这是我第一次使用cvTriangulatePoints与1个以上的对应点。是否可以添加更多点,或者我是否有其他错误C 错误:输入参数的大小不匹配。三角点,c,visual-studio,opencv,triangulation,C,Visual Studio,Opencv,Triangulation,我在VisualStudio上使用了函数cvTriangulatePoints(请参见文档:)。 当我每个图像有一个对应点(N=1)时,代码工作,但如果我添加第二个点(N=2),我会得到以下错误: “错误:输入参数的大小与cvTriangulatePoints中的”不匹配。” 这是我第一次使用cvTriangulatePoints与1个以上的对应点。是否可以添加更多点,或者我是否有其他错误 CvMat* projMatr1; CvMat* projMatr2; CvMat* projPoints
CvMat* projMatr1;
CvMat* projMatr2;
CvMat* projPoints1;
CvMat* projPoints2;
CvMat* points4D;
int N = 2;
projMatr1 = cvCreateMat(3, 4, CV_64FC1);
projMatr2 = cvCreateMat(3, 4, CV_64FC1);
projPoints1 = cvCreateMat(2, N, CV_64FC1);
projPoints2 = cvCreateMat(2, N, CV_64FC1);
points4D = cvCreateMat(4, N, CV_64FC1);
// I fill the matrices with the opencv function cvSet2D()
cvTriangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2, points4D);
当N(通道数)的值从1提高到2时,cvCreateMat
中的最后一个参数也应从
CV_64FC1 to CV_64FC2.
^ ^
projPoints1 = cvCreateMat(2, N, CV_64FC2);
projPoints2 = cvCreateMat(2, N, CV_64FC2);
points4D = cvCreateMat(4, N, CV_64FC2);
参数的Cx部分指的是通道数
更一般地说,Mat
对象的类型名由几个部分组成。以下是CV\u 64FC1
的示例:
-库前缀CV
-每个基本矩阵元素的位数(例如灰度图像中的像素值或BGR图像中的单色元素)64
-基本元素的类型。在这种情况下,它是浮动的F
,但也可以是F
(有符号)或s
(无符号)U
-图像中包含的通道数Cx
…Cx
对于您来说应该是…C2
以下是有关的详细信息。当N(通道数)的值从1提高到2时,
cvCreateMat
中的最后一个参数也应从
CV_64FC1 to CV_64FC2.
^ ^
projPoints1 = cvCreateMat(2, N, CV_64FC2);
projPoints2 = cvCreateMat(2, N, CV_64FC2);
points4D = cvCreateMat(4, N, CV_64FC2);
参数的Cx部分指的是通道数
更一般地说,Mat
对象的类型名由几个部分组成。以下是CV\u 64FC1
的示例:
-库前缀CV
-每个基本矩阵元素的位数(例如灰度图像中的像素值或BGR图像中的单色元素)64
-基本元素的类型。在这种情况下,它是浮动的F
,但也可以是F
(有符号)或s
(无符号)U
-图像中包含的通道数Cx
…Cx
对于您来说应该是…C2
这里有更多的信息