Spatial Analyst のライセンスで利用可能。
サマリー
類似したスペクトル特性を持つ隣接ピクセルを、セグメントにグループ化します。
使用法
入力として、Esri がサポートし、有効なビット深度を持つ任意のラスターを指定できます。
[バンド インデックス] パラメーターは、スペースで区切られた 3 つのバンドのリストです。
最適な結果を得るには、分類対象の地物がはっきりと見えるように、データセット プロパティの [シンボル] タブを使用して [入力ラスター] を対話的にストレッチします。次に、[ストレッチ] ラスター関数の最適な設定を使用して画像を改善し、結果を最適化します。[一般] タブから [出力ピクセル タイプ] を 8 bit unsigned に指定します。
以前に実行した [ストレッチ] ラスター関数からの出力レイヤーを [セグメント平均シフト (Segment Mean Shift)] ツールの [入力ラスター] にすることができます。
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
構文
SegmentMeanShift (in_raster, {spectral_detail}, {spatial_detail}, {min_segment_size}, {band_indexes})
パラメーター | 説明 | データ タイプ |
in_raster | セグメント化するラスター データセットを選択します。マルチスペクトル画像またはグレースケール画像を指定できます。 | Raster Layer; Mosaic Layer |
spectral_detail (オプション) | 画像内の地物のスペクトル差に与える重要度を設定します。 有効な値の範囲は 1.0 ~ 20.0 です。別々に分類したいフィーチャが存在するが、それらのスペクトル特性がやや類似している場合は、高い値が適しています。小さい値を指定すると、スペクトル的に滑らかな出力が作成されます。たとえば、森林に覆われたシーンで [スペクトル詳細度] を高くすると、個々の樹木をはっきりと区別できるようになります。 | Double |
spatial_detail (オプション) | 画像内の地物間の近接性に与える重要度を設定します。 有効な値の範囲は 1.0 ~ 20 です。対象のフィーチャが小さく、一緒にクラスタリングされているシーンの場合、高い値が適しています。小さい値を指定すると、空間的に滑らかな出力が作成されます。たとえば、都市のシーンでは、小さい [空間的詳細度] を使用して不透水性の地表を分類したり、高い [空間的詳細度] を使用して建物や道路を個別のクラスとして分類できます。 | Long |
min_segment_size (オプション) | このサイズよりも小さいセグメントを、最もよく適合する隣接セグメントとマージします。これは、プロジェクトの最小マッピング単位に関連しています。 単位はピクセルです。 | Long |
band_indexes (オプション) | 画像をセグメント化するために使用するバンドをスペース区切りで指定します。バンド インデックスが指定されない場合、次の条件で選択されます。
バンドの順序で結果が変わることはありません。 対象の地物間に最も差異をもたらすバンドを選択します。 | String |
戻り値
名前 | 説明 | データ タイプ |
out_raster_dataset | 出力データセットの名前と拡張子を指定します。 マルチスペクトル画像を入力した場合、出力は 8 ビット RGB 画像になります。グレースケール画像を入力した場合、出力は 8 ビット グレースケール画像になります。 | Raster |
コードのサンプル
SegmentMeanShift (セグメント平均シフト) の例 1 (Python ウィンドウ)
次の例では、近赤外、赤、緑の入力を使用して、最小セグメント サイズが 20 の出力を作成しています。
import arcpy
from arcpy.sa import *
seg_raster = SegmentMeanShift("c:/test/moncton.tif", "15", "10", "20", "4 3 2")
seg_raster.save("c:/test/moncton_seg.tif")
SegmentMeanShift (セグメント平均シフト) の例 2 (スタンドアロン スクリプト)
次の例では SegmentMeanShift を実行して、近赤外、赤、緑の入力を使用し、最小セグメント サイズが 20 の出力を作成しています。
# Import system modules
import arcpy
from arcpy.sa import *
# Set local variables
inRaster = "c:/test/moncton.tif"
spectral_detail = "14.5"
spatial_detail = "10"
min_segment_size = "20"
band_indexes = "4 3 2"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute
seg_raster = SegmentMeanShift(inRaster, spectral_detail, spatial_detail,
min_segment_size, band_indexes)
# Save the output
seg_raster.save("c:/output/moncton_seg.tif")
環境
ライセンス情報
- ArcGIS Desktop Basic: 次のものが必要 Spatial Analyst
- ArcGIS Desktop Standard: 次のものが必要 Spatial Analyst
- ArcGIS Desktop Advanced: 次のものが必要 Spatial Analyst