メインコンテンツ

e57FileReader

R2026b

E57 ファイルからの点群データの読み取り

R2023a 以降

    説明

    e57FileReader オブジェクトは、E57 ファイルから点群データを読み取ります。

    作成

    説明

    e57Reader = e57FileReader(fileName) は、E57 ファイルから点群データを読み取る e57FileReader オブジェクトを作成します。E57 ファイルの絶対パスまたは相対パスを指定する fileName 引数は、FileName オブジェクト プロパティを設定します。fileName は、文字ベクトルまたは string スカラーとして指定します。

    例

    プロパティ

    すべて展開する

    この プロパティ は読み取り専用です。

    E57 ファイルの名前。文字ベクトルとして格納されます。

    この プロパティ は読み取り専用です。

    E57 ファイル ヘッダーの書式名。文字ベクトルとして格納されます。

    この プロパティ は読み取り専用です。

    E57 ファイル ヘッダーのグローバル一意識別子。文字ベクトルとして格納されます。

    この プロパティ は読み取り専用です。

    E57 ファイルのバージョン。文字ベクトルとして格納されます。

    この プロパティ は読み取り専用です。

    E57 ファイルの保存に使用するライブラリ バージョン。文字ベクトルとして格納されます。

    この プロパティ は読み取り専用です。

    ファイル作成日時。datetime オブジェクトとして格納されます。

    この プロパティ は読み取り専用です。

    E57 ファイル内の点群の数。非負の整数として格納されます。

    R2026b 以降

    読み取る次の点群のインデックス。正の整数として指定します。インデックスを readPointCloud オブジェクト関数に指定しない場合、このオブジェクト関数は、このインデックスにある点群を読み取り、読み取り操作の完了後にこのプロパティ値を 1 つインクリメントします。このインデックスの値は、読み取り操作開始時における E57 ファイル内の点群の数を超えることはできません。

    データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    オブジェクト関数

    readPointCloudRead point cloud data from E57 file
    readCRSRead coordinate reference system data from E57 file
    hasPointCloudDetermine if another point cloud is available in E57 file
    resetReset e57FileReader object to first frame

    例

    すべて折りたたむ

    E57 ファイルを含む ZIP ファイルをダウンロードし、そのファイルを解凍します。

    zipFile = matlab.internal.examples.downloadSupportFile("lidar","data/e57ParkingLot.zip");
    saveFolder = fileparts(zipFile);
    e57FileName = [saveFolder filesep 'parkingLot.e57'];
    if ~exist(e57FileName,"file")
        unzip(zipFile,saveFolder)
    end

    ダウンロードした E57 ファイルを使用して e57FileReader オブジェクトを作成します。

    e57Reader = e57FileReader(e57FileName);

    点群 ptCloudArr および対応する姿勢 tformArr を格納するための変数を定義します。

    ptCloudArr = [];
    tformArr = []; 

    点群を順番に読み取ります。hasPointCloud オブジェクト関数を使用して、次の点群が利用可能かどうかをチェックします。

    while hasPointCloud(e57Reader)
       [ptCloud,pcMetadata] = readPointCloud(e57Reader);
        for j = 1:numel(ptCloud) % To read multiple returns
            ptCloudArr = [ptCloudArr ptCloud(j)];
            tformArr = [tformArr pcMetadata.RelativePose];
        end
    end

    ファイルの点群を配置してマップを作成します。

    pcMap = pcalign(ptCloudArr,tformArr); 

    マップを表示します。

    figure
    pcshow(pcMap)

    Figure contains an axes object. The axes object contains an object of type scatter.

    詳細

    すべて展開する

    バージョン履歴

    R2023a で導入

    すべて展開する