parabolicLaneBoundary

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

Описание

The 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

Задайте тип контура маршрута как LaneBoundaryType BoundaryType.. Для примера:

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. The axes 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. The axes contains an object of type image.

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

approxBoundaryWidth = 0.25;

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

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

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

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

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

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

boundaries = findParabolicLaneBoundaries(xyBoundaryPoints,approxBoundaryWidth);

Использование insertLaneBoundary для наложения полос на оригинальное изображение. The 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. The axes 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. The axes contains an object of type image.

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

.

См. также

Приложения

Объекты

Функции

Введенный в R2017a