parabolicLaneBoundary

Параболическая модель контура маршрута

Описание

parabolicLaneBoundary объект содержит информацию о параболической модели контура маршрута.

Создание

Чтобы сгенерировать параболические модели контура маршрута, которые соответствуют набору граничных точек и аппроксимированной ширины, используйте findParabolicLaneBoundaries функция. Если вы уже знаете свои параболические параметры, создаете модели контура маршрута при помощи parabolicLaneBoundary функция (описанный здесь).

Описание

пример

boundaries = parabolicLaneBoundary(parabolicParameters) создает массив параболических моделей контура маршрута от массива [A B C] параметры для параболического уравнения y = Ax2 + Bx + C. Точки в моделях контура маршрута находятся в мировых координатах.

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

развернуть все

Коэффициенты для параболических моделей формы y = Ax2 + Bx + C в виде [A B C] вектор с действительным знаком или как матрица [A B C] значения. Каждая строка parabolicParameters описывает отдельную параболическую модель контура маршрута.

Свойства

развернуть все

Коэффициенты для параболической модели формы y = Ax2 + Bx + C в виде вектора с действительным знаком из формы [A B C].

Тип контура маршрута в виде LaneBoundaryType перечисление. Поддерживаемые типы контура маршрута:

  • Unmarked

  • Solid

  • Dashed

  • BottsDots

  • DoubleSolid

Объекты контура маршрута всегда возвращают BoundaryType как вводят Solid. Обновите эти типы, чтобы совпадать с типами маршрутов, которые адаптируются. Чтобы обновить тип контура маршрута, используйте LaneBoundaryType. BoundaryType синтаксис. Например, этот пример кода показывает, как обновить первый выходной контур маршрута, чтобы ввести BottsDots:

boundaries(1) = LaneBoundaryType.BottsDots;

Сила граничной модели в виде действительного скаляра. Strength отношение количества уникального x - местоположения оси на контуре к длине контура, заданного XExtent свойство. Сплошная линия без любых пропусков имеет более высокую силу, чем пунктирная линия, которая имеет пропуски вдоль полного из контура.

Длина контура вдоль x - ось в виде вектора с действительным знаком из формы [minX maxX] это описывает минимальный и максимальный x - местоположения оси.

Функции объекта

computeBoundaryModelПолучите y - координаты контуров маршрута, данных x - координаты

Примеры

свернуть все

Создайте лево-маршрут и правильный маршрут параболические граничные модели.

llane = parabolicLaneBoundary([-0.001 0.01  0.5]);
rlane = parabolicLaneBoundary([-0.001 0.01 -0.5]);

Создайте видимый с большого расстояния график и плоттер контура маршрута. Постройте контуры маршрута.

bep = birdsEyePlot('XLimits',[0 30],'YLimits',[-5 5]);
lbPlotter = laneBoundaryPlotter(bep,'DisplayName','Lane boundaries');
plotLaneBoundary(lbPlotter, [llane rlane]);

Figure contains an axes object. The axes object contains an object of type line. This object represents Lane boundaries.

Найдите маршруты в изображении при помощи параболических моделей контура маршрута. Наложите идентифицированные маршруты на оригинальном изображении и на преобразовании вида с высоты птичьего полета изображения.

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

I = imread('road.png');

Преобразуйте изображение в изображение вида с высоты птичьего полета при помощи предварительно сконфигурированного объекта датчика. Это объектные модели датчик, который получил оригинальное изображение.

bevSensor = load('birdsEyeConfig');
birdsEyeImage = transformImage(bevSensor.birdsEyeConfig,I);
imshow(birdsEyeImage)

Figure contains an axes object. The axes object contains an object of type image.

Установите аппроксимированную ширину маркера маршрута в мировых единицах измерения (метры).

approxBoundaryWidth = 0.25;

Обнаружьте функции маршрута и отобразите их как черно-белое изображение.

birdsEyeBW = segmentLaneMarkerRidge(im2gray(birdsEyeImage), ...
    bevSensor.birdsEyeConfig,approxBoundaryWidth);
imshow(birdsEyeBW)

Figure contains an axes object. The axes object contains an object of type image.

Получите кандидата маршрута точки в мировых координатах.

[imageX,imageY] = find(birdsEyeBW);
xyBoundaryPoints = imageToVehicle(bevSensor.birdsEyeConfig,[imageY,imageX]);

Найдите контуры маршрута в изображении при помощи findParabolicLaneBoundaries функция. По умолчанию функция возвращает максимум двух контуров маршрута. Контуры хранятся в массиве parabolicLaneBoundary объекты.

boundaries = findParabolicLaneBoundaries(xyBoundaryPoints,approxBoundaryWidth);

Используйте insertLaneBoundary накладывать маршруты на оригинальном изображении. XPoints вектор представляет точки маршрута в метрах, которые являются в области значений датчика автомобиля, оборудованного датчиком. Задайте маршруты в различных цветах. По умолчанию маршруты являются желтыми.

XPoints = 3:30;

figure
sensor = bevSensor.birdsEyeConfig.Sensor;
lanesI = insertLaneBoundary(I,boundaries(1),sensor,XPoints);
lanesI = insertLaneBoundary(lanesI,boundaries(2),sensor,XPoints,'Color','green');
imshow(lanesI)

Figure contains an axes object. The axes object contains an object of type image.

Просмотрите маршруты в изображении вида с высоты птичьего полета.

figure
BEconfig = bevSensor.birdsEyeConfig;
lanesBEI = insertLaneBoundary(birdsEyeImage,boundaries(1),BEconfig,XPoints);
lanesBEI = insertLaneBoundary(lanesBEI,boundaries(2),BEconfig,XPoints,'Color','green');
imshow(lanesBEI)

Figure contains an axes object. The axes object contains an object of type image.

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

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

Приложения

Объекты

Функции

Введенный в R2017a