birdsEyeView

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

Описание

Используйте birdsEyeView объект создать вид с высоты птичьего полета на 2D сцену с помощью обратного перспективного отображения. Чтобы преобразовать изображение в вид с высоты птичьего полета, передайте 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 свойство. Четыре координаты задают выходной пробел в (X, Y) система координат, с источником, сосредоточенным на местоположении датчика камеры.

Можно установить это свойство, когда вы создаете объект. После того, как вы создадите объект, это свойство только для чтения.

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

Можно установить это свойство, когда вы создаете объект. После того, как вы создадите объект, это свойство только для чтения.

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

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 object. The axes object 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 object. The axes object 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 object. The axes object with title Bird's-Eye-View Image: imageToVehicle contains an object of type image.

Больше о

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2017a