OpenCV: measureAffine3D создает исключение, которое трудно расшифровать

Я использую OpenCV для записи облаков точек от Kinect и других камер. Чтобы синхронизировать облака точек вместе, я хочу использовать калибровочную 3D-установку и cv :: valuAffine3D (). Тем не менее, OpenCV вызывает это странное исключение при попытке использовать эту функцию:

OpenCV Exception: C:\Tools\opencv\modules\core\src\matrix.cpp:1466:
error: (-215) mtype == type0 || (CV_MAT_CN(mtype) == CV_MAT_CN(type0) &&
((1 << type0) & fixedDepthMask) != 0)

Я не могу понять, что текст об исключении хочет сказать мне, и Google не дает соответствующих результатов, возможно, кто-то еще знает больше меня по этому вопросу. Спасибо!

РЕДАКТИРОВАТЬ: Это мой вызов функции:

cv::Mat affine;

std::vector<cv::Point> inliers;

cv::estimateAffine3D(camPoints,objPoints,affine,inliers,5.0,0.96);

где и camPoints, и objPoints std::vector<cv::Point3f> types, camPoints — это углы, которые возвращает findChessboardCorners (перепроецированные в пространство трехмерной камеры), а objPoints — просто вектор, обозначающий одинаковые углы в пространстве объектов, в этом случае его содержимое выглядит следующим образом:
(0,0,0), (40,0,0), (80,0,0), …, (0,40,0), (40,40,0), (80,40,0 ) … (0,200,0), (40,200,0), (80,200,0)

2

Решение

Очевидно, функция, которая дала мне перепроектированные углы шахматной доски, была неисправна (но раньше работала нормально). Видимо, из этого исключения хочется сказать, что что-то не так с входными точками, в моем случае все camPoints были (0,0,0).

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector