cubicLaneBoundary

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

Описание

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

Создание

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

Описание

пример

boundaries = cubicLaneBoundary(cubicParameters) создает массив кубических моделей контура маршрута из массива [A B C D] параметры для кубического уравнения y = Ax3 + Bx2 + Cx + D. Точки в пределах модели контура маршрута указаны в мировых координатах.

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

расширить все

Параметры для кубических моделей вида y = Ax3 + Bx2 + Cx + D, заданные как [A B C D] вектор с вещественным значением или как матрица [A B C D] значения. Каждая строка cubicParameters описывает отдельную кубическую модель контура маршрута.

Свойства

расширить все

Коэффициенты для кубической модели вида y = Ax3 + Bx2 + Cx + D, заданные как [A B C D] вектор с реальным значением.

Тип контура, заданный как LaneBoundaryType поддерживаемых контуров маршрута. Поддерживаемые типы контуров маршрута:

  • Unmarked

  • Solid

  • Dashed

  • BottsDots

  • DoubleSolid

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

LaneBoundaryType.BottsDots

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

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

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

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

Примеры

свернуть все

Создайте модели кубических границ слева и справа.

llane = cubicLaneBoundary([-0.0001 0.0 0.003  1.6]);
rlane = cubicLaneBoundary([-0.0001 0.0 0.003 -1.8]);

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

bep = birdsEyePlot('XLimits',[0 30],'YLimits',[-10 10]);
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]);

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

boundaries = findCubicLaneBoundaries(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.

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

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

.

См. также

Приложения

Объекты

Функции

Введенный в R2018a