imageToVehicle

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

Синтаксис

vehiclePoints = imageToVehicle(monoCam,imagePoints)

Описание

пример

vehiclePoints = imageToVehicle(monoCam,imagePoints) преобразовывает координаты изображений в [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 [x y] координаты изображений.

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

свернуть все

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

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

Объекты

Функции

Введенный в R2017a