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