estimateFisheyeParameters

Калибруйте камеру подозрительного взгляда

Синтаксис

[fisheyeParams,imagesUsed,estimationErrors] = estimateFisheyeParameters(imagePoints,worldPoints,imageSize)
[___] = estimateFisheyeParameters(___,Name,Value)

Описание

пример

[fisheyeParams,imagesUsed,estimationErrors] = estimateFisheyeParameters(imagePoints,worldPoints,imageSize) возвращает объект fisheyeParameters, содержащий оценки для внутренних и внешних параметров камеры подозрительного взгляда. Функция также возвращает изображения, вы раньше оценивали параметры подозрительного взгляда и стандартные ошибки оценки для одной калибровки фотоаппарата.

[___] = estimateFisheyeParameters(___,Name,Value) конфигурирует свойства объектов fisheyeParams, заданные одним или несколькими аргументами пары Name,Value, с помощью предыдущего синтаксиса. Незаданные свойства имеют свои значения по умолчанию.

Примеры

свернуть все

Используйте калибровочные изображения, чтобы обнаружить калибровочный шаблон шахматной доски. Затем калибруйте камеру с помощью углов, извлеченных от шаблона, и визуализируйте результаты.

Соберите набор калибровочных изображений.

images = imageDatastore(fullfile(toolboxdir('vision'),'visiondata',...
        'calibration','gopro'));
imageFileNames = images.Files;

Обнаружьте калибровочный шаблон от изображений.

[imagePoints,boardSize] = detectCheckerboardPoints(imageFileNames);

Сгенерируйте мировые координаты для углов квадратов шахматной доски.

squareSize = 29; % millimeters
worldPoints = generateCheckerboardPoints(boardSize,squareSize);

Оцените параметры калибровки фотоаппарата подозрительного взгляда на основе изображения и мировых точек.

I = readimage(images,1);
imageSize = [size(I,1) size(I,2)];
params = estimateFisheyeParameters(imagePoints,worldPoints,imageSize);

Визуализируйте калибровочную точность.

figure
showReprojectionErrors(params);

Визуализируйте камеру extrinsics.

figure
showExtrinsics(params);
drawnow

Постройте обнаруженные и повторно спроектированные точки.

figure
imshow(I);
hold on
plot(imagePoints(:,1,1),imagePoints(:,2,1),'go');
plot(params.ReprojectedPoints(:,1,1),params.ReprojectedPoints(:,2,1),'r+');
legend('Detected Points','Reprojected Points');
hold off

Входные параметры

свернуть все

Ключевые пункты калибровочного шаблона, заданного как M-by-2-by-numImages массив [x, y] внутренние координаты изображений. Количество изображений, numImages, должно быть больше, чем 2. Количество координат keypoint в каждом шаблоне, M, должно быть больше, чем 3.

Типы данных: single | double

Ключевые пункты калибровочного шаблона в мировых координатах, заданных как M-by-2 матрица M [x, y] мировые координаты. Поскольку шаблон должен быть плоским, z - координаты являются нулем.

Типы данных: single | double

Размер изображения, заданный как вектор [mrows ncols].

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'WorldUnits', 'mm' устанавливает мировые модули точки на миллиметры.

Оцените выравнивание осей, заданное как пара, разделенная запятой, состоящая из 'EstimateAlignment' и false или true. Установите на true, если оптическая ось линзы подозрительного взгляда не перпендикулярна плоскости изображения.

Мировые модули точки, заданные как пара, разделенная запятой, состоящая из 'WorldUnits' и вектора символов, представляющего модули. Этот аргумент используется просто, чтобы сохранить модульный тип и не влияет ни на какие вычисления. Любой вектор символов допустим.

Выходные аргументы

свернуть все

Параметры камеры подозрительного взгляда, возвращенные как объект fisheyeParameters.

Изображения используются к оценочным параметрам камеры, возвращенным как P-by-1 логический массив. P соответствует количеству изображений. Логическое значение true указывает, что индекс изображения раньше оценивал параметры камеры.

Стандартные погрешности предполагаемых параметров, возвращенных как объект fisheyeCalibrationErrors.

Ссылки

[1] Scaramuzza, D., А. Мартинелли и Р. Сигварт. "Тулбокс для легкой калибровки камеры Omindirectional". Продолжения к международной конференции IEEE по вопросам интеллектуальных роботов и систем (IROS 2006). Пекин, Китай, 7-15 октября 2006.

[2] Городской, S., Дж. Лейтлофф и С. Хинц. "Улучшенный Широкий угол, Подозрительный взгляд и Всенаправленная Калибровка фотоаппарата". Журнал ISPRS Фотограмметрии и Удаляет Обнаружение. Издание 108, 2015, pp.72-79.

Введенный в R2017b