セグメント平均シフト (Segment Mean Shift) (Image Analyst)

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
(オプション)

画像をセグメント化するために使用する、スペースで区切られたバンド。バンド インデックスが指定されない場合、次の条件で決定されます。

  • ラスターのバンドが 3 つのみの場合、この 3 つが使用されます。
  • ラスターのバンドが 3 つより多い場合、ラスターのプロパティに従って、ツールが、赤、緑、青のバンドを割り当てます。
  • ラスター データセットのプロパティで、赤、緑、青のバンドが指定されていない場合、1、2、3 のバンドが使用されます。

バンドの順序で結果が変わることはありません。

対象の地物間に最も差異をもたらすバンドを選択します。

String
max_segment_size
(オプション)

セグメントの最大サイズ。指定されたサイズよりも大きいセグメントは分割されます。このパラメーターを使用して、大きいセグメントによる出力ラスターの劣化を防ぎます。

単位はピクセルです。

デフォルト値は -1 です。これは、セグメント サイズの制限がないことを意味します。

Long

戻り値

名前説明データ タイプ
out_raster_dataset

出力データセットの名前と拡張子を指定します。

マルチスペクトル画像を入力した場合、出力は 8 ビット RGB 画像になります。グレースケール画像を入力した場合、出力は 8 ビット グレースケール画像になります。

Raster

コードのサンプル

SegmentMeanShift (セグメント平均シフト) の例 1 (Python ウィンドウ)

次の例では、近赤外、赤、緑の入力を使用して、最小セグメント サイズが 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 (セグメント平均シフト) の例 2 (スタンドアロン スクリプト)

次の例では 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

関連トピック