Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

imageToVehicle

鳥瞰ビューのイメージ座標から車両座標への変換

説明

vehiclePoints = imageToVehicle(birdsEye,imagePoints) は、鳥瞰ビューのイメージ座標を車両座標 [x y] に変換します。

すべて折りたたむ

車両に取り付けられた前面カメラによって取得されたイメージから鳥瞰ビュー イメージを作成します。車両座標系およびイメージ座標系を使用して鳥瞰ビュー内の点を表示します。

カメラの内部パラメーターを定義し、これらの内部パラメーターが含まれたオブジェクトを作成します。

focalLength = [309.4362 344.2161];
principalPoint = [318.9034 257.5352];
imageSize = [480 640];

camIntrinsics = cameraIntrinsics(focalLength,principalPoint,imageSize);

カメラの高さを地上約 2 メートルになるように設定します。カメラのピッチを地面に向けて 14 度に設定します。

height = 2.1798;
pitch = 14;

カメラ構成が含まれたオブジェクトを作成します。

sensor = monoCamera(camIntrinsics,height,'Pitch',pitch);

鳥瞰ビューに変換する、カメラの前の領域を定義します。カメラの前に 3 から 30 メートル、カメラの両側に 6 メートルずつの領域を設定します。

distAhead = 30;
spaceToOneSide = 6;
bottomOffset = 3;

outView = [bottomOffset,distAhead,-spaceToOneSide,spaceToOneSide];

出力イメージの幅を 250 ピクセルに設定します。長さを NaN に設定することで、出力の長さを幅から自動的に計算します。

outImageSize = [NaN,250];

前に定義したパラメーターを使用して、鳥瞰ビュー変換を実行するためのオブジェクトを作成します。

birdsEye = birdsEyeView(sensor,outView,outImageSize);

センサーによって取得されたイメージを読み込みます。

I = imread('road.png');
figure
imshow(I)
title('Original Image')

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

入力イメージを鳥瞰ビュー イメージに変換します。

BEV = transformImage(birdsEye,I);

鳥瞰ビュー イメージで、センサーの正面に 20 メートルのマーカーを配置します。関数 vehicleToImage を使用して、車両座標でマーカーの位置を指定します。鳥瞰ビュー イメージでマーカーを表示します。

imagePoint = vehicleToImage(birdsEye,[20 0]);
annotatedBEV = insertMarker(BEV,imagePoint);
annotatedBEV = insertText(annotatedBEV,imagePoint + 5,'20 meters');

figure
imshow(annotatedBEV)
title('Bird''s-Eye-View Image: vehicleToImage')

Figure contains an axes object. The axes object with title Bird's-Eye-View Image: vehicleToImage contains an object of type image.

今度はイメージ座標で、元の鳥瞰ビュー イメージの位置を定義します。関数 imageToVehicle を使用して、イメージ座標を車両座標に変換します。マーカーから車両前面までの距離を表示します。

imagePoint2 = [120 400];
annotatedBEV = insertMarker(BEV,imagePoint2);

vehiclePoint = imageToVehicle(birdsEye,imagePoint2);
xAhead = vehiclePoint(1);
displayText = sprintf('%.2f meters',xAhead);
annotatedBEV = insertText(annotatedBEV,imagePoint2 + 5,displayText);

figure
imshow(annotatedBEV)
title('Bird''s-Eye-View Image: imageToVehicle')

Figure contains an axes object. The axes object with title Bird's-Eye-View Image: imageToVehicle contains an object of type image.

入力引数

すべて折りたたむ

イメージを鳥瞰ビューに変換するためのオブジェクト。birdsEyeView オブジェクトとして指定します。

イメージ ポイント。M 個のイメージ座標 [x y] を含む M 行 2 列の行列として指定します。

出力引数

すべて折りたたむ

車両ポイント。M 個の車両座標 [x y] を含む M 行 2 列の行列として返されます。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2017a で導入