exponenta event banner

birdsEyeView

Создание вида с высоты птичьего полета с помощью обратного перспективного отображения

Описание

Используйте birdsEyeView объект для создания вида с высоты птичьего полета сцены 2-D с использованием обратного перспективного отображения. Чтобы преобразовать изображение в вид с высоты птичьего полета, передайте birdsEyeView объект и это изображение в transformImage функция. Чтобы преобразовать координаты изображения с высоты птичьего полета в координаты транспортного средства или из них, используйте imageToVehicle и vehicleToImage функции. Все эти функции предполагают, что входное изображение не имеет искажения объектива. Для удаления искажения объектива используйте undistortImage функция.

Создание

Описание

пример

birdsEye = birdsEyeView(sensor,outView,outImageSize) создает birdsEyeView объект для преобразования изображения в вид с высоты птичьего полета.

  • sensor является monoCamera объект, определяющий конфигурацию датчика камеры. Этот ввод устанавливает Sensor собственность.

  • outView определяет часть изображения камеры в координатах транспортного средства, которая преобразуется в изображение с высоты птичьего полета. Этот ввод устанавливает OutputView собственность.

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

Свойства

развернуть все

Конфигурация датчика камеры, указанная как monoCamera объект. Объект содержит внутренние параметры камеры, высоту установки и углы установки камеры. Эта конфигурация определяет систему координат транспортного средства birdsEyeView объект. Дополнительные сведения см. в разделе Система координат транспортного средства.

Координаты области для преобразования в изображение с высоты птичьего полета, задаваемое как четырехэлементный вектор вида [xmin xmax ymin ymax]. Единицы измерения находятся в мировых координатах, таких как метры или футы, как определено Sensor собственность. Четыре координаты определяют выходное пространство в системе координат транспортного средства (XV, YV).

Это свойство можно задать при создании объекта. После создания объекта это свойство доступно только для чтения.

Размер выходных изображений птичьего вида в пикселях, заданных как двухэлементный вектор вида [m n], где m и n определяют количество строк и столбцов пикселей для выходного изображения соответственно. Если указать значение для одного размера, можно задать для другого размера значение NaN и birdsEyeView автоматически вычисляет это значение. Установка для одного размера значения NaN поддерживает одинаковое отношение пикселя к мировой единице вдоль XV-оси и YV-оси.

Это свойство можно задать при создании объекта. После создания объекта это свойство доступно только для чтения.

Функции объекта

transformImageПреобразование изображения в вид с высоты птичьего полета
imageToVehicleПреобразование координат изображения с высоты птичьего полета в координаты транспортного средства
vehicleToImageПреобразование координат транспортного средства в координаты изображения с высоты птичьего полета

Примеры

свернуть все

Создание изображения с высоты птичьего полета на основе изображения, полученного фронтальной камерой, установленной на транспортном средстве. Отображение точек на виде с высоты птичьего полета с использованием систем координат транспортного средства и изображения.

Определите характеристики камеры и создайте объект, содержащий эти характеристики.

focalLength = [309.4362 344.2161];
principalPoint = [318.9034 257.5352];
imageSize = [480 640];

camIntrinsics = cameraIntrinsics(focalLength,principalPoint,imageSize);

Установите высоту камеры около 2 метров над землей. Установите шаг камеры на 14 градусов по направлению к земле.

height = 2.1798;
pitch = 14;

Создайте объект, содержащий конфигурацию камеры.

sensor = monoCamera(camIntrinsics,height,'Pitch',pitch);

Определите область перед камерой, которую требуется преобразовать в вид с высоты птичьего полета. Установите площадь от 3 до 30 метров перед камерой, 6 метров с каждой стороны камеры.

distAhead = 30;
spaceToOneSide = 6;
bottomOffset = 3;

outView = [bottomOffset,distAhead,-spaceToOneSide,spaceToOneSide];

Установите ширину выходного изображения равной 250 пикселям. Автоматическое вычисление выходной длины по ширине путем установки значения длины NaN.

outImageSize = [NaN,250];

Создайте объект для преобразования «птичий взгляд» с использованием ранее определенных параметров.

birdsEye = birdsEyeView(sensor,outView,outImageSize);

Загрузите изображение, захваченное датчиком.

I = imread('road.png');
figure
imshow(I)
title('Original Image')

Figure contains an axes. The axes with title Original Image contains an object of type image.

Преобразуйте входное изображение в изображение птичьего вида.

BEV = transformImage(birdsEye,I);

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

imagePoint = vehicleToImage(birdsEye,[20 0]);
annotatedBEV = insertMarker(BEV,imagePoint);
annotatedBEV = insertText(annotatedBEV,imagePoint + 5,'20 meters');

figure
imshow(annotatedBEV)
title('Bird''s-Eye-View Image: vehicleToImage')

Figure contains an axes. The axes with title Bird's-Eye-View Image: vehicleToImage contains an object of type image.

Определите местоположение на исходном изображении птичьего вида, на этот раз в координатах изображения. Используйте imageToVehicle функция преобразования координат изображения в координаты транспортного средства. Отображение расстояния между маркером и передней частью транспортного средства.

imagePoint2 = [120 400];
annotatedBEV = insertMarker(BEV,imagePoint2);

vehiclePoint = imageToVehicle(birdsEye,imagePoint2);
xAhead = vehiclePoint(1);
displayText = sprintf('%.2f meters',xAhead);
annotatedBEV = insertText(annotatedBEV,imagePoint2 + 5,displayText);

figure
imshow(annotatedBEV)
title('Bird''s-Eye-View Image: imageToVehicle')

Figure contains an axes. The axes with title Bird's-Eye-View Image: imageToVehicle contains an object of type image.

Подробнее

развернуть все

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2017a