estimateFisheyeParameters

Калибровка fisheye камеры

Описание

пример

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

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

Примеры

свернуть все

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

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

images = imageDatastore('calibImages');
imageFileNames = images.Files;

Обнаружьте калибровочный шаблон от изображений. Аргумент 'PartialDetections' Name-Value установлен в истину обнаружением разрешения значения по умолчанию частичных шахматных досок.

[imagePoints,boardSize] = detectCheckerboardPoints(imageFileNames, 'HighDistortion', true);

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

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

Оцените калибровочные параметры fisheye-камеры на основе изображения и мировых точек.

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

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

figure
showReprojectionErrors(params);

Figure contains an axes object. The axes object with title Mean Reprojection Error per Image contains 3 objects of type bar, line. This object represents Overall Mean Error: 1.67 pixels.

Визуализируйте значения внешних параметров камеры.

figure
showExtrinsics(params);

Figure contains an axes object. The axes object with title Extrinsic Parameters Visualization contains 25 objects of type patch, text, line.

drawnow

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

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

Figure contains an axes object. The axes object contains 3 objects of type image, line. These objects represent Detected Points, Reprojected Points.

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

свернуть все

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

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

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

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

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

Аргументы name-value

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

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

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

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

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

свернуть все

Параметры fisheye-камеры, возвращенные как 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