undistortFisheyeImage

Правильное изображение «рыбий глаз» для искажения объектива

Описание

пример

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

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

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

пример

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

Примеры

свернуть все

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

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

images = imageDatastore('calibrationImages');

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

[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. 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 <reservedrangesplaceholder2>-by-3 truecolor или M N 2-м изображением оттенков серого. Входное изображение должно быть реальным и неразборчивым.

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

Параметры собственной камеры «рыбий глаз», заданные как 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 может быть скаляром или трехэлементным вектором значений RGB.

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

свернуть все

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

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

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

Совет

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

Ссылки

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

Введенный в R2017b