vehicleToImage

Преобразуйте координаты автомобиля, чтобы отобразить координаты

Синтаксис

imagePoints = vehicleToImage(monoCam,vehiclePoints)

Описание

пример

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

Примеры

свернуть все

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

Установите внутренние параметры камеры. Задайте фокусное расстояние, основную точку плоскости изображения и размер выходного изображения. Модули находятся в пикселях. Сохраните intrinsics как объект 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')

Определите координаты изображений точки 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')

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

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

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

свернуть все

Монокулярные параметры камеры, заданные как объект monoCamera.

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

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

свернуть все

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

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

Объекты

Функции

Введенный в R2017a