このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
removeBands
説明
は指定されたスペクトル バンド番号を持つスペクトル バンドをハイパースペクトル データ キューブから削除します。newhcube
= removeBands(hcube
,'BandNumber',band
)
メモ
この関数には Image Processing Toolbox™ Hyperspectral Imaging Library が必要です。Image Processing Toolbox Hyperspectral Imaging Library はアドオン エクスプローラーからインストールできます。アドオンのインストールの詳細については、アドオンの入手と管理を参照してください。
例
指定した波長範囲にあるバンドの削除
ハイパースペクトル データをワークスペースに読み取ります。
hcube = hypercube('paviaU.dat');
hypercube
オブジェクトのプロパティを調べます。
hcube
hcube = hypercube with properties: DataCube: [610×340×103 double] Wavelength: [103×1 double] Metadata: [1×1 struct]
ハイパースペクトル データ キューブのスペクトル波長範囲を求めます。
range = [min(hcube.Wavelength) max(hcube.Wavelength)]
range = 1×2
430 838
ハイパースペクトル データ キューブから削除する波長の範囲を指定します。
wlrange = [410 450; 620 850];
指定した波長範囲にあるスペクトル バンドを削除します。この関数は、削除されたバンドを含まない、新しい hypercube
オブジェクトを返します。
newhcube = removeBands(hcube,'Wavelength',wlrange)
newhcube = hypercube with properties: DataCube: [610×340×42 double] Wavelength: [42×1 double] Metadata: [1×1 struct]
元の波長値と新しい波長値をプロットします。
figure plot(hcube.Wavelength,'o') hold on plot(newhcube.Wavelength,'or') xlabel('Band Number') ylabel('Wavelength') legend('Original Values','New Values','Location','SouthEast')
データ キューブからの情報のないバンドの削除
ハイパースペクトル データをワークスペースに読み取ります。
hcube = hypercube('paviaU.dat')
hcube = hypercube with properties: DataCube: [610×340×103 double] Wavelength: [103×1 double] Metadata: [1×1 struct]
関数 ppi
を使用して、ハイパースペクトル データ キューブのスペクトル的に異なる 5 つのエンドメンバーを計算します。
endmembers = fippi(hcube,5);
エンドメンバー スペクトルに基づいて、入力データ キューブの最も情報量の多いバンドを 10 個求めます。
[~,informativeband] = selectBands(hcube,endmembers,'NumberOfBands',10);
情報量の多いバンドのバンド番号を使用して、データ キューブの情報量のないバンドのバンド番号を求めます。
band = setdiff(1:size(hcube.DataCube,3),informativeband);
ハイパースペクトル データ キューブから情報量のないバンドを削除します。この関数は、最も情報量の多いバンドのみを含む、新しい hypercube
オブジェクトを返します。
newhcube = removeBands(hcube,'BandNumber',band)
newhcube = hypercube with properties: DataCube: [610×340×10 double] Wavelength: [10×1 double] Metadata: [1×1 struct]
元の波長値と新しい波長値をプロットします。
figure plot(hcube.Wavelength,'o') hold on plot(newhcube.Wavelength,'or') xlabel('Band Number') ylabel('Wavelength') legend('Original Values','New Values','Location','SouthEast')
入力引数
hcube
— 入力ハイパースペクトル データ
hypercube
オブジェクト
入力ハイパースペクトル データ。hypercube
オブジェクトとして指定します。hypercube
オブジェクトの DataCube
プロパティにはハイパースペクトル データ キューブが格納されます。
wlrange
— 削除する波長範囲
K 行 2 列の行列
削除する波長範囲。K 行 2 列の行列として指定します。K は入力データから削除する波長範囲の数です。各行の形式は [Wmin Wmax] です。Wmin および Wmax は削除する範囲の最小波長と最大波長です。指定された波長範囲の少なくとも 1 つは、入力 hypercube
オブジェクト内の少なくとも 1 つのスペクトル バンドの波長値と重なり合っていなければなりません。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
band
— 削除するスペクトル バンド番号
正の整数 | 正の整数のベクトル
削除するスペクトル バンド番号。正の整数または正の整数のベクトルとして指定します。指定したバンド番号はすべて入力ハイパースペクトル データ内にあるスペクトル バンドの数以下でなければなりません。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
出力引数
newhcube
— 出力ハイパースペクトル データ
hypercube
オブジェクト
出力ハイパースペクトル データ。hypercube
オブジェクトとして返されます。
バージョン履歴
R2020a で導入
参考
hypercube
| selectBands
| ppi
| fippi
| nfindr
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)