insertLaneBoundary

Вставьте контур маршрута в изображение

Синтаксис

rgb = insertLaneBoundary(I,boundaries,sensor,xVehicle)
rgb = insertLaneBoundary(___,Name,Value)

Описание

пример

rgb = insertLaneBoundary(I,boundaries,sensor,xVehicle) вставляет маркировки контура маршрута в изображение истинного цвета. Маршруты наложены на входном изображении дороги, I. Это изображение прибывает из датчика, заданного в объекте sensor. xVehicle указывает, что x - координирует, в котором можно чертить маркеры маршрута. y - координаты вычисляются на основе параметров граничных моделей в boundaries.

пример

rgb = insertLaneBoundary(___,Name,Value) вставляет маркировки контура маршрута с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value, с помощью предыдущих входных параметров.

Примеры

свернуть все

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

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

I = imread('road.png');

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

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

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

approxBoundaryWidth = 0.25;

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

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

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

[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
BEconfig = bevSensor.birdsEyeConfig;
lanesBEI = insertLaneBoundary(birdsEyeImage,boundaries(1),BEconfig,XPoints);
lanesBEI = insertLaneBoundary(lanesBEI,boundaries(2),BEconfig,XPoints,'Color','green');
imshow(lanesBEI)

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

свернуть все

Введите дорожное изображение, заданное как истинный цвет или полутоновое изображение.

Типы данных: single | double | int8 | int16 | uint8 | uint16

Модели контура маршрута, заданные как массив объектов parabolicLaneBoundary или объектов cubicLaneBoundary. Модели контура маршрута содержат следующие свойства:

  • Параметры Вектор, соответствующий коэффициентам граничной модели. Размер вектора зависит от степени полинома для модели.

    Объект контура маршрутаПараметры
    parabolicLaneBoundary

    [A B C], соответствуя коэффициентам полиномиального уравнения второй степени формы y = Ax 2 + Bx + C

    cubicLaneBoundary[A B C D], соответствуя коэффициентам полиномиального уравнения третьей степени формы y = Ax 3 + Bx 2 + Cx + D
  • BoundaryType — Перечисление LaneBoundaryType поддерживаемых контуров маршрута:

    • Unmarked

    • Solid

    • Dashed

    • BottsDots

    • DoubleSolid

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

    LaneBoundaryType.BottsDots
    
  • Strength — отношение количества уникального x - местоположения оси на контуре к общему количеству точек вдоль строки на основе свойства XExtent.

  • XExtent — двухэлементный вектор, описывающий минимальный и максимальный x - местоположения оси для граничных точек.

Датчик, который собирает изображения, заданные как любой объект birdsEyeView или monoCamera.

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

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Color',[0 1 0]

Цвет контуров маршрута, заданных как вектор символов, представляет в виде строки скаляр или вектор [R,G,B] значений RGB. Можно задать определенные цвета для каждого контура в boundaries с массивом ячеек из символьных векторов, массивом строк или m-by-3 матрица значений RGB. Цвета соответствуют порядку граничных маршрутов.

Значения RGB должны быть в области значений типа данных image.

Поддерживаемыми значениями цвета является 'blue', 'green', 'red', 'cyan', 'magenta', 'yellow', 'black' и 'white'.

Пример: 'red'

Пример: [1,0,0]

Ширина линии для граничных маршрутов, заданных как положительное целое число в пикселях.

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

свернуть все

Отобразите с граничными наложенными маршрутами, возвращенными как изображение истинного цвета RGB. Класс выходного изображения совпадает с входным изображением, I.

Введенный в R2017a