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

Figure contains an axes object. The axes object 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 object. The axes object 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 object. The axes object with title Image-to-Vehicle Point contains an object of type image.

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

свернуть все

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

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

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

свернуть все

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

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

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

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

Объекты

Функции

Введенный в R2017a