Я пытаюсь откалибровать стереокамеру с помощью OpenCV 2.4.9, и у меня возникает ошибка при вызове stereoCalibrate
,
Ниже приведены изображения, которые я использую. (с некоторыми странными расцветками глюки любезно предоставлены MS Paint). Три изображения сверху — с левой камеры, а три снизу — с правой камеры. Обратите внимание, что я использовал еще несколько пар изображений, и изображения на самом деле не такие маленькие, они имеют размер 640×480; Тем не менее, я сократил их и пропустил некоторые, так что этот пост не имеет длину 935837 миль.
OpenCV находит углы шахматной доски просто отлично. Я отображаю их, используя drawChessboardCorners
и они выглядят правильно. Так что это не проблема.
Затем я калибрую каждую камеру отдельно, используя calibrateCamera
, Я показываю изображения, которые передаются, хотя undistort
используя матрицы с помощью calibrateCamera
и результат, кажется, немного корректирует искажения объектива.
Неискаженный на основе результатов calibrateCamera
:
Та же ошибка возникает, если я опускаю calibrateCamera
шаг и настроить флаги stereoCalibrate
соответственно (замените CV_CALIB_FIX_INTRINSIC
флаг с CV_CALIB_SAME_FOCAL_LENGTH | CV_CALIB_ZERO_TANGENT_DIST
)
Далее я звоню stereoCalibrate
и я получаю эту ошибку:
OpenCV Error: Assertion failed (dims == 2 && (sizes[0] == 1 || sizes[1] == 1 || sizes[0]*sizes[1] == 0))
in create, file c:/Users/s-foxk/Documents/libs/opencv/sources/modules/core/src/matrix.cpp, line 1564
...Generic Widnows Garbage...
terminate called after throwing an instance of 'cv::Exception'
what(): c:/Users/s-foxk/Documents/libs/opencv/sources/modules/core/src/matrix.cpp:1564:
error: (-215) dims == 2 && (sizes[0] == 1 || sizes[1] == 1 || sizes[0]*sizes[1] == 0) in function create
В течение последних нескольких часов я искал решение этой проблемы и информацию об этой ошибке, а также об изменении маленьких кусочков моего кода. Все, к сожалению, безрезультатно. Кажется, очень мало информации об этой ошибке или, может быть, только об этой ситуации.
Что означает эта ошибка? Как я могу избавиться от этого? Мне пришло в голову, что шахматная доска может быть слишком далеко, учитывая разрешение камеры 640×480. Может ли это быть проблемой?
Если кто-то захочет увидеть часть или весь мой код, я с радостью создам для него вставку, но я не решаюсь выложить ее здесь, поскольку она длинная и безобразная.
Задача ещё не решена.
Других решений пока нет …