【发布时间】:2014-06-10 23:36:48
【问题描述】:
执行我的代码时出现以下错误:
原因:CvException [org.opencv.core.CvException: cv::Exception: /home/reports/ci/slave_desktop/50-SDK/opencv/modules/calib3d/src/fundam.cpp:1152: 错误:(-215) npoints >= 0 && (src.depth() == CV_32F || src.depth() == CV_32S) 在函数 void cv::convertPointsFromHomogeneous(cv::InputArray, cv::OutputArray)
这是我正在使用的代码:
Mat res = new Mat(); // Result mat for triangulation
Mat P1 = new Mat(3,4,CvType.CV_32F);
double[] diagVal = {1,0,0,0,
0,1,0,0,
0,0,1,0};
P1.put(0, 0, diagVal);
int[] max = new int[4];
for(int i = 0; i < max.length; i++)
max[i] = 0;
Mat P2 = buildCameraMatrix(R1, T1);
Calib3d.triangulatePoints(P1, P2, objLeft, objRight, res);
TriangulatePoints 产生一个类型为 CV_32F 的 (914,4) Mat(res.type() == 5 为真)。
我做错了什么?
【问题讨论】:
-
convertPointsFromHomogeneous在哪里调用?