exponenta event banner

vehicleToImage

Преобразование координат транспортного средства в координаты изображения

Описание

пример

imagePoints = vehicleToImage(monoCam,vehiclePoints) преобразует координаты [x y] или [x y z] транспортного средства в координаты [x y] изображения путем применения проективного преобразования . Объект монокулярной камеры, monoCam, содержит параметры камеры.

Примеры

свернуть все

Создайте обращенный вперед датчик монокулярной камеры, установленный на эго-автомобиле. Просмотр изображения, снятого с камеры, и определение местоположения в пределах изображения как в координатах транспортного средства, так и в координатах изображения.

Задайте внутренние параметры камеры. Укажите фокусное расстояние, главную точку плоскости изображения и размер выходного изображения. Единицы измерения выражены в пикселях. Сохранение внутренних характеристик в виде cameraIntrinsics объект.

focalLength = [800 800];
principalPoint = [320 240];
imageSize = [480 640];

intrinsics = cameraIntrinsics(focalLength,principalPoint,imageSize);

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

height = 2.18;
pitch = 14;

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

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

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

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

Определите координаты точки в 10 метрах непосредственно перед камерой. Ось X указывает вперед от камеры, а ось Y - влево.

xyVehicleLoc1 = [10 0];
xyImageLoc1 = vehicleToImage(sensor,xyVehicleLoc1)
xyImageLoc1 = 1×2

  320.0000  216.2296

Отображение точки на изображении.

IvehicleToImage = insertMarker(Ioriginal,xyImageLoc1);
IvehicleToImage = insertText(IvehicleToImage,xyImageLoc1 + 5,'10 meters');
figure
imshow(IvehicleToImage)
title('Vehicle-to-Image Point')

Figure contains an axes. The axes with title Vehicle-to-Image Point contains an object of type image.

Определите координаты транспортного средства точки, лежащей на поверхности дороги на изображении.

xyImageLoc2 = [300 300];
xyVehicleLoc2 = imageToVehicle(sensor,xyImageLoc2)
xyVehicleLoc2 = 1×2

    6.5959    0.1732

Точка находится примерно в 6,6 метрах перед транспортным средством и примерно в 0,17 метрах слева от центра транспортного средства.

Отображение координат транспортного средства точки на изображении.

IimageToVehicle = insertMarker(Ioriginal,xyImageLoc2);
displayText = sprintf('(%.2f m, %.2f m)',xyVehicleLoc2);
IimageToVehicle = insertText(IimageToVehicle,xyImageLoc2 + 5,displayText);

figure
imshow(IimageToVehicle)
title('Image-to-Vehicle Point')

Figure contains an axes. The axes with title Image-to-Vehicle Point contains an object of type image.

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

свернуть все

Параметры монокулярной камеры, указанные как monoCamera объект.

Точки транспортного средства, указанные в виде M-by-2 или M-by-3 матрицы, содержащей M-число координат транспортного средства [x y] или [x y z ].

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

свернуть все

Точки изображения, возвращаемые в виде матрицы M-by-2, содержащей M координат изображения [x y].

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

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

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