undistortFisheyeImage

Корректировка fisheye изображения для искажения линзы

Описание

пример

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

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

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

пример

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

Примеры

свернуть все

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

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

images = imageDatastore('calibrationImages');

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

[imagePoints,boardSize] = detectCheckerboardPoints(images.Files, '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);

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

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

Figure contains an axes object. The axes object 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 object. The axes object with title Output View with low Scale Factor contains an object of type image.

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

свернуть все

Неискаженное изображение, возвращенное как M-by-N-by-3 истинный цвет или M-by-N 2D полутоновое изображение.

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

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

Советы

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

Ссылки

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

Введенный в R2017b