birdsEyeView

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

Описание

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

Создание

Описание

пример

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

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

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

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

Свойства

расширить все

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

Координаты области, чтобы преобразовать в изображение вида с высоты птичьего полета, определенное как вектор с четырьмя элементами формы [<reservedrangesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2> <reservedrangesplaceholder1> ]. Модули указаны в мировых координатах, таких как метры или футы, как определяется Sensor свойство. Четыре координаты определяют выход пространство в транспортное средство системе координат (X V, Y V).

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

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

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

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

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++ с помощью Coder™ MATLAB ®

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