exponenta event banner

undistortFisheyeImage

Коррекция изображения рыбьего глаза для искажения объектива

Описание

пример

J = undistortFisheyeImage(I,intrinsics) удаляет искажение объектива для изображения I и возвращает результат в виде изображения J.

[J,camIntrinsics] = undistortFisheyeImage(I,intrinsics) также возвращает cameraIntrinsics объект, который соответствует виртуальной микроотверстной камере.

[___] = undistortFisheyeImage(___,interp) задает метод интерполяции, interp, используя предшествующие синтаксисы.

пример

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

Примеры

свернуть все

Удалите искажение объектива изображения рыбьего глаза, обнаружив шаблон калибровки контрольной доски и откалибровав камеру. Затем просмотрите результаты.

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

images = imageDatastore('calibrationImages');

Определите шаблон калибровки по изображениям. Для аргумента «PartityDetections» Name-Value по умолчанию установлено значение true, позволяющее обнаруживать частичные шахматные доски.

[imagePoints,boardSize] = detectCheckerboardPoints(images.Files, 'HighDistortion', true);

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

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

Оценка параметров калибровки камеры «рыбий глаз» на основе изображения и точек мира. Используйте первое изображение для получения размера изображения.

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

Удаление искажения объектива с первого изображения I и просмотрите результаты.

J1 = undistortFisheyeImage(I,params.Intrinsics);
figure
imshowpair(I,J1,'montage')
title('Original Image (left) vs. Corrected Image (right)')

Figure contains an axes. The axes with title Original Image (left) vs. Corrected Image (right) contains an object of type image.

J2 = undistortFisheyeImage(I,params.Intrinsics,'OutputView','same', 'ScaleFactor', 0.2);
figure
imshow(J2)
title('Output View with low Scale Factor')

Figure contains an axes. The axes with title Output View with low Scale Factor contains an object of type image.

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

свернуть все

Входное изображение, указанное как M-by-N-by-3 truecolor или M-by-N 2-D изображение в градациях серого. Входное изображение должно быть реальным и непроверенным.

Типы данных: single | double | int16 | uint8 | uint16 | logical

Внутренние параметры камеры Fisheye, указанные как fisheyeIntrinsics объект.

Метод интерполяции для использования на входном изображении, указанный как 'bilinear', 'nearest' , или 'cubic'.

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

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

Пример: 'ScaleFactor',2 установка масштабного коэффициента для увеличения масштаба изображения на виде камеры.

Размер выходного изображения, указанный как 'same', 'full', или 'valid'.

Масштабный коэффициент для фокусного расстояния перспективы виртуальной камеры в пикселях, указанный как скаляр или [sx sy] вектор. Укажите вектор для масштабирования осей x и y по отдельности. Увеличьте масштаб изображения для увеличения перспективы вида камеры.

Выходные значения пиксельной заливки, указанные как разделенная запятыми пара, состоящая из 'FillValues«и скалярный или 3-элементный вектор». Когда соответствующее место обратного преобразования во входном изображении полностью выходит за границы входного изображения, для выходных пикселей используются значения заливки. При использовании 2-D входного изображения в градациях серого FillValues должен быть скаляром. При использовании изображения в стиле «truecolor» FillValues может быть скаляром или 3-элементным вектором значений RGB.

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

свернуть все

Неискаженное изображение, возвращенное как M N 3 truecolor или 2-м изображением оттенков серого M на Н.

Типы данных: single | double | int16 | uint8 | uint16 | logical

Неискаженные характеристики виртуальной камеры, возвращенные в виде cameraIntrinsics объект. camIntrinsics объект представляет собой виртуальную микроотверстную камеру. Этот объект можно использовать с функциями рабочего процесса калибровки модели точечного отверстия. Эти характеристики относятся к камере с перспективой, которая создает неискаженное изображение.

Совет

  • Алгоритм калибровки Computer Vision Toolbox™ использует модель камеры «рыбий глаз», предложенную Scaramuzza [1].

Ссылки

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

Представлен в R2017b