undistortImage

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

Описание

пример

[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)');

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

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

Figure contains an axes. The axes with title Full Output View contains an object of type image.

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

свернуть все

Изображение входа, определенное или в M <reservedrangesplaceholder2>-by-3 truecolor или в M N 2-ми оттенками серого. Входное изображение должно быть реальным и неразборчивым.

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

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

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

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

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

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

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

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

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

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

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

'full'

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

'valid'

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

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

свернуть все

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

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

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

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

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

PI = PJ + newOrigin

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

.
Введенный в R2014a