imageToVehicle

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

Описание

пример

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

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