insertLaneBoundary

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

Описание

пример

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)

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.

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

свернуть все

Входное дорожное изображение, заданное как truecolor или полутоновое изображение.

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

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

  • Parameters - вектор, соответствующий коэффициентам краевой модели. Размер вектора зависит от степени полинома для модели.

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

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

    cubicLaneBoundary[A B C D], соответствующий коэффициентам полиномиального уравнения третьей степени вида y = Ax3 + Bx2 + Cx + D
  • BoundaryType - A LaneBoundaryType перечисление поддерживаемых контуров маршрута:

    • Unmarked

    • Solid

    • Dashed

    • BottsDots

    • DoubleSolid

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

    LaneBoundaryType.BottsDots
    
  • Strength - Отношение количества уникальных x -осей на контуре к общему числу точек вдоль линии на основе XExtent свойство.

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

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

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

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

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

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

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

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

Пример: 'red'

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

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

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

свернуть все

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

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

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

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