vehicleToImage

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

Описание

пример

imagePoints = vehicleToImage(monoCam,vehiclePoints) новообращенные [<reservedrangesplaceholder7> <reservedrangesplaceholder6>] или [<reservedrangesplaceholder5> <reservedrangesplaceholder4> <reservedrangesplaceholder3>] транспортное средство координируют к [<reservedrangesplaceholder2> <reservedrangesplaceholder1>] координаты изображения, применяя проективное преобразование. Объект монокулярной камеры, 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 объект.

Точки транспортного средства, определенные как <reservedrangesplaceholder7>-by-2 или матрица <reservedrangesplaceholder6>-by-3, содержащая M количество [<reservedrangesplaceholder4> <reservedrangesplaceholder3>] или [<reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplaceholder0>] координаты транспортного средства.

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

свернуть все

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

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

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

.
Введенный в R2017a