Вставьте контур маршрута в изображение
вставляет разметку контура маршрута в изображение труколора. Полосы на вход дорожном изображении, 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(im2gray(birdsEyeImage), ...
bevSensor.birdsEyeConfig,approxBoundaryWidth);
imshow(birdsEyeBW)
Получите точки маршрута в мировых координатах.
[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 BEconfig = bevSensor.birdsEyeConfig; lanesBEI = insertLaneBoundary(birdsEyeImage,boundaries(1),BEconfig,XPoints); lanesBEI = insertLaneBoundary(lanesBEI,boundaries(2),BEconfig,XPoints,'Color','green'); imshow(lanesBEI)
I
- Входное дорожное изображениеВходное дорожное изображение, заданное как truecolor или полутоновое изображение.
Типы данных: single
| double
| int8
| int16
| uint8
| uint16
boundaries
- Модели контура маршрутаparabolicLaneBoundary
объекты | массив cubicLaneBoundary
объектыМодели контура маршрута, заданные как массив parabolicLaneBoundary
объекты или cubicLaneBoundary
объекты. Модели контуров маршрута содержат следующие свойства:
Parameters
- вектор, соответствующий коэффициентам краевой модели. Размер вектора зависит от степени полинома для модели.
Объект контура маршрута | Параметры |
---|---|
parabolicLaneBoundary |
|
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 местоположение оси для граничных точек.
sensor
- Датчик, который собирает изображенияbirdsEyeView
| объекта monoCamera
объектДатчик, который собирает изображения, заданный как birdsEyeView
или monoCamera
объект.
xVehicle
- x -осей контураx местоположения осей, в которых можно отобразить контуры маршрута, заданные как действительный вектор в координатах транспортного средства. Интервал между точками управляет интервалом между штрихами и точками для соответствующих типов контуров. Чтобы четко показать штриховые контуры, задайте как минимум четыре точки в xVehicle
. Если задано менее четырех точек, функция рисует сплошной контур.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'Color',[0 1 0]
'Color'
- Цвет контуров маршрута'yellow'
(по умолчанию) | вектор символов | строковый скаляр | [R,G,B]
вектор RGB оценивает | массив ячеек векторов символов | строковые массивы | Цвет контуров маршрута, заданный как вектор символов, строковый скаляр или [R,G,B]
вектор значений RGB. Можно задать определенные цвета для каждого контура в boundaries
с массивом ячеек из векторов символов, строковых массивов или матрицы m -by-3 значений RGB. Цвета соответствуют порядку граничных полос.
Значения RGB должны быть в область значений типа данных изображений.
Поддерживаемые значения цвета 'blue'
, 'green'
, 'red'
, 'cyan'
, 'magenta'
, 'yellow'
, 'black'
, и 'white'
.
Пример: 'red'
Пример: [1,0,0]
'LineWidth'
- Ширина линии для граничных полос движения3
(по умолчанию) | положительное целое числоШирина линии для граничных полос, заданная в виде положительного целого числа в пикселях.
rgb
- Изображение с граничными полосамиИзображение с наложенными граничными полосами, возвращенное как изображение RGB truecolor. Класс выходного изображения соответствует входу изображению I
.
birdsEyeView
| cubicLaneBoundary
| fitPolynomialRANSAC
| monoCamera
| parabolicLaneBoundary
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.