undistortImage

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

Синтаксис

[J,newOrigin] = undistortImage(I,cameraParams)
[J,newOrigin] = undistortImage(I,cameraParams,interp)
[J,newOrigin] = undistortImage(___,Name,Value)

Описание

пример

[J,newOrigin] = undistortImage(I,cameraParams) возвращает изображение, J, содержа входное изображение, I, с удаленным искажением объектива. Функция также возвращается [x, y] местоположение источника выходного изображения. Местоположение установлено с точки зрения входа внутренние координаты, заданные в cameraParams.

[J,newOrigin] = undistortImage(I,cameraParams,interp) задает метод интерполяции для функции, чтобы использовать на входном изображении.

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

Примеры

свернуть все

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

images = imageDatastore(fullfile(toolboxdir('vision'),'visiondata', ...
    'calibration','mono'));

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

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

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

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

Калибруйте камеру.

I = readimage(images,1);
imageSize = [size(I,1),size(I,2)];
cameraParams = estimateCameraParameters(imagePoints,worldPoints, ...
                                  'ImageSize',imageSize);

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

I = images.readimage(1);
J1 = undistortImage(I,cameraParams);
figure; imshowpair(I,J1,'montage');
title('Original Image (left) vs. Corrected Image (right)');

J2 = undistortImage(I,cameraParams,'OutputView','full');
figure;
imshow(J2);
title('Full Output View');

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

свернуть все

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

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

Параметры камеры, заданные как объект cameraParameters или cameraIntrinsics. Можно возвратить объект cameraParameters с помощью функции estimateCameraParameters. Объект cameraParameters содержит внутреннее, внешнее, и параметры искажения объектива камеры.

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

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

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

Пример: 'FillValues', 0 устанавливает наборы значения заливки выходного пикселя на 0.

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

Размер выходного изображения, заданного как пара, разделенная запятой, состоящая из 'OutputView' и вектора символов 'same', 'full' или 'valid'. Когда вы устанавливаете свойство на 'same', функция устанавливает выходное изображение совпадать с размером входного изображения. Когда вы устанавливаете свойство на 'full', вывод включает все пиксели от входного изображения. Когда вы устанавливаете свойство на 'valid', функциональные обрезки выходное изображение содержать только допустимые пиксели.

Для входного изображения:

OutputViewВыходное изображение
'same'

Совпадайте с размером входного изображения.

'full'

Все пиксели от входного изображения.

'valid'

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

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

свернуть все

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

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

Источник выходного изображения, возвращенный как с 2 элементами [x, y] вектор. Функция устанавливает выходное местоположение источника с точки зрения входа внутренние координаты. Когда вы устанавливаете OutputView на 'same', что означает, что выходное изображение одного размера как входное изображение, функция устанавливает newOrigin на [0,0].

newOrigin вывод представляет перевод из внутренних координат выходного изображения J во внутренние координаты входа, отображает I.

Позвольте PI представлять точку во внутренних координатах входного изображения I.
Позвольте PJ представлять ту же точку во внутренних координатах выходного изображения J.

PI = PJ + newOrigin

Расширенные возможности

Введенный в R2014a