このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
insertLaneBoundary
車線境界線をイメージに挿入
説明
は、車線境界区分線をトゥルーカラー イメージに挿入します。車線は、入力道路イメージ rgb
= insertLaneBoundary(I
,boundaries
,sensor
,xVehicle
)I
に重ねて表示されます。このイメージは、sensor
オブジェクトで指定されるセンサーから取得されます。xVehicle
は、車線区分線を描画する位置の x 座標を指定します。y 座標は、boundaries
の境界線モデルのパラメーターに基づいて計算されます。
は、前述の入力引数を使用して、1 つ以上の 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)
車線の候補位置に対応するイメージ座標を取得します。関数 find
は、車線の候補位置に対応するピクセル インデックスを返します。慣例により、イメージ座標の順序は、常にピクセル インデックスと逆になります。イメージ座標の詳細については、座標系を参照してください。
関数 imageToVehicle
を使用して、対応する車線境界線の点を車両座標で取得します。
[imageY,imageX] = find(birdsEyeBW); xyBoundaryPoints = imageToVehicle(bevSensor.birdsEyeConfig,[imageX,imageY]);
関数 findParabolicLaneBoundaries
を使用して、イメージ内で車線境界線を見つけます。既定では、この関数は最大で 2 つの車線境界線を返します。境界線は 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)
入力引数
I
— 入力道路イメージ
トゥルーカラー イメージ | グレースケール イメージ
入力道路イメージ。トゥルーカラーまたはグレースケール イメージとして指定します。
データ型: single
| double
| int8
| int16
| uint8
| uint16
boundaries
— 車線境界線モデル
parabolicLaneBoundary
オブジェクトの配列 | cubicLaneBoundary
オブジェクトの配列
車線境界線モデル。parabolicLaneBoundary
オブジェクトまたは cubicLaneBoundary
オブジェクトの配列として指定します。車線境界線モデルには次のプロパティが含まれています。
Parameters
— 境界線モデルの係数に対応するベクトル。ベクトルのサイズは、モデルの多項式の次数によって異なります。車線境界線オブジェクト パラメーター parabolicLaneBoundary
[A B C]
。y = Ax2 + Bx + C の形式の 2 次多項方程式の係数に対応cubicLaneBoundary
[A B C D]
。y = Ax3 + Bx2 + Cx + D の形式の 3 次多項方程式の係数に対応BoundaryType
— サポートされている車線境界線の列挙LaneBoundaryType
。Unmarked
Solid
Dashed
BottsDots
DoubleSolid
車線境界線のタイプを
LaneBoundaryType.
として指定します。次に例を示します。BoundaryType
LaneBoundaryType.BottsDots
Strength
— 境界線上にある一意な x 軸の位置の数と、XExtent
プロパティに基づく線上の点の合計数との比率。XExtent
– 境界線の点の最小および最大の x 軸の位置を表す 2 要素ベクトル。
sensor
— イメージを収集するセンサー
birdsEyeView
オブジェクト | monoCamera
オブジェクト
イメージを収集するセンサー。birdsEyeView
オブジェクトまたは monoCamera
オブジェクトとして指定します。
xVehicle
— 境界線の x 軸の位置
実数値ベクトル
車両境界線を表示する x 軸の位置。実数値ベクトルとして、車両座標で指定します。点の間隔は、該当する境界線タイプの破線や点の間隔を制御します。破線の境界線を明確に表示するには、xVehicle
で少なくとも 4 個の点を指定します。4 個未満の点を指定した場合、関数は実線の境界線を描画します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。
R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: 'Color',[0 1 0]
Color
— 車線境界線の色
'yellow'
(既定値) | 文字ベクトル | string スカラー | RGB 値の [R,G,B]
ベクトル | 文字ベクトルの cell 配列 | string 配列 | RGB 値の m 行 3 列の行列
車線境界線の色。文字ベクトル、string スカラー、または RGB 値の [R,G,B]
ベクトルとして指定します。boundaries
で、文字ベクトルの cell 配列、string 配列、または RGB 値の m 行 3 列の行列を使用して、各境界線に特定の色を指定できます。色は車線境界線の順序に対応します。
RGB 値はイメージ データ型の範囲内でなければなりません。
サポートされている色の値は、'blue'
、'green'
、'red'
、'cyan'
、'magenta'
、'yellow'
、'black'
、および 'white'
です。
例: 'red'
例: [1,0,0]
LineWidth
— 車線境界線の幅
3
(既定値) | 正の整数
車線境界線の幅。正の整数 (ピクセル単位) として指定します。
出力引数
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2017a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)