transformImage

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

Описание

пример

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

Примеры

свернуть все

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

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

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.

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

свернуть все

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

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

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

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

свернуть все

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

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

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

.

См. также

Объекты

Функции

Введенный в R2017a