transformImage

Преобразуйте изображение к виду с высоты птичьего полета

Синтаксис

J = transformImage(birdsEye,I)

Описание

пример

J = transformImage(birdsEye,I) преобразовывает входное изображение, I, к изображению вида с высоты птичьего полета, J. Свойства OutputView и ImageSize объекта birdsEyeView, birdsEye, определяют фрагмент I, чтобы преобразовать и размер J, соответственно.

Примеры

свернуть все

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

Задайте камеру intrinsics и создайте объект, содержащий эти intrinsics.

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

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

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

Задайте местоположение в исходном изображении вида с высоты птичьего полета, на этот раз в координатах изображений. Используйте функцию 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')

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

свернуть все

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

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

I не должен содержать искажение объектива. Можно удалить искажение объектива при помощи функции undistortImage. В высокопроизводительной оптике можно проигнорировать искажение.

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

свернуть все

Изображение вида с высоты птичьего полета, возвращенное как истинный цвет или полутоновое изображение. Свойство ImageSize birdsEye определяет размер J.

Смотрите также

Объекты

Функции

Введенный в R2017a