Main Content

assignData

新しいデータをハイパースペクトル データ キューブに割り当て

R2020a 以降

    説明

    newhcube = assignData(hcube,row,column,band,data) は指定された data をハイパースペクトル データ キューブに割り当てます。この関数は、hypercube オブジェクト hcube に格納されたデータ キューブを読み取り、row および column によって指定された位置でスペクトル バンド band に新しいデータを割り当て、新しい hypercube オブジェクトを返します。

    メモ

    この関数には Image Processing Toolbox™ Hyperspectral Imaging Library が必要です。Image Processing Toolbox Hyperspectral Imaging Library はアドオン エクスプローラーからインストールできます。アドオンのインストールの詳細については、アドオンの入手と管理を参照してください。

    Image Processing Toolbox Hyperspectral Imaging LibraryMATLAB® Online™ または MATLAB Mobile™ ではサポートされないため、デスクトップの MATLAB が必要となります。

    すべて折りたたむ

    ENVI 形式ファイルからハイパースペクトル データを読み取ります。

    hcube = hypercube('paviaU.dat');

    反射率値を範囲 [0, 1] に正規化します。

    data = rescale(hcube.DataCube);

    正規化された反射率値をデータ キューブに割り当てます。

    newhcube = assignData(hcube,':',':',':',data);

    関心領域 (ROI) の行インデックスと列インデックスを指定します。ROI 内のすべてのインデックスにゼロ値を割り当てます。

    row = 180:220;
    column = 125:160;
    newhcube = assignData(newhcube,row,column,':',0);

    スペクトル バンドの元のバージョンと変更したバージョンの両方を表示します。

    fig = figure('Position',[0 0 800 500]);
    axes1 = axes('Parent',fig,'Position',[0.06 0.05 0.45 0.8]);
    imagesc(hcube.DataCube(:,:,10),'Parent',axes1);
    title('Original Data')
    colorbar
    axis off
    axes2 = axes('Parent',fig,'Position',[0.55 0.05 0.45 0.8]);
    imagesc(newhcube.DataCube(:,:,10),'Parent',axes2);
    title('Modified Data')
    colorbar
    axis off
    colormap gray  

    入力引数

    すべて折りたたむ

    入力ハイパースペクトル データ。hypercube オブジェクトとして指定します。hypercube オブジェクトの DataCube プロパティにはハイパースペクトル データ キューブが格納されます。

    データ キューブの行インデックス。':'、正の整数、または正の整数のベクトルとして指定します。

    • データ キューブ内のすべての行を選択するには、 ':' を使用します。

    • 特定の 1 行または複数行を選択するには、行インデックスを、それぞれ正の整数または正の整数のベクトルとして指定します。データ キューブのサイズが M x N x C の場合、指定された行インデックス値はすべて M 以下でなければなりません。行インデックスの範囲または一定の間隔でインデックスを指定するには、colon 演算子を使用します。たとえば、row = 1:10 のようにします。

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

    データ キューブの列インデックス。':'、正の整数、または正の整数のベクトルとして指定します。

    • データ キューブ内のすべての列を選択するには、 ':' を使用します。

    • 特定の 1 列または複数列を選択するには、列インデックスを、それぞれ正の整数または正の整数のベクトルとして指定します。データ キューブのサイズが M x N x C の場合、指定された列インデックス値はすべて N 以下でなければなりません。列インデックスの範囲または一定の間隔でインデックスを指定するには、colon 演算子を使用します。たとえば、column = 1:10 のようにします。

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

    スペクトル バンド番号。':'、正の整数、または正の整数のベクトルとして指定します。

    • データ キューブ内のすべてのバンドを選択するには、':' を使用します。

    • 特定のバンドを 1 つ以上選択するには、バンド番号を、それぞれ正の整数または正の整数のベクトルとして指定します。データ キューブのサイズが M x N x C の場合、指定されたバンド番号の値はすべて C 以下でなければなりません。バンド番号の範囲または一定の間隔で番号を指定するには、colon 演算子を使用します。たとえば、band = 1:10 のようにします。

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

    割り当てる値。rowcolumn、および band の入力の値に応じて、スカラー、ベクトル、行列、または 3 次元配列として指定します。

    row が以下の場合column が以下の場合band が以下の場合data は以下のとおりでなければなりません
    スカラースカラースカラースカラー
    M 要素ベクトルスカラースカラーM 要素の行ベクトルまたは M 行 1 列の行列または M x 1 x 1 の配列
    スカラーN 要素ベクトルスカラーN 要素の列ベクトルまたは 1 行 N 列の行列または 1 x N x 1 の配列
    スカラースカラーC 要素ベクトル1 x 1 x C の配列
    M 要素ベクトルN 要素ベクトルスカラーM 行 N 列の行列または M x N x 1 の配列
    M 要素ベクトルN 要素ベクトルC 要素ベクトルM x N x C の配列

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

    出力引数

    すべて折りたたむ

    出力ハイパースペクトル データ。hypercube オブジェクトとして返されます。

    バージョン履歴

    R2020a で導入