Disponible avec une licence Spatial Analyst.
Récapitulatif
Outil qui identifie des entités ou des segments dans votre image en regroupant des pixels adjacents qui présentent des caractéristiques spectrales similaires. Vous pouvez contrôler la quantité de lissage spatial et spectral pour dériver des entités qui vous intéressent.
Utilisation
L'entrée peut être n'importe quel raster pris en charge par Esri, avec n'importe quelle profondeur des couleurs.
Le paramètre Index de canal est une liste de trois canaux, chacun étant séparés par un espace.
Pour plus d'informations sur les environnements de géotraitement qui s'appliquent à cet outil, reportez-vous à la rubrique Environnements d'analyse et Spatial Analyst.
Syntaxe
SegmentMeanShift (in_raster, {spectral_detail}, {spatial_detail}, {min_segment_size}, {band_indexes})
Paramètre | Explication | Type de données |
in_raster | Sélectionnez le jeu de données raster que vous voulez segmenter. Il peut s'agir d'une image multispectrale ou en nuances de gris. Pour optimiser les résultats, utilisez l'onglet Symbologie dans les propriétés du jeu de données afin d'étirer interactivement votre imagerie et de rendre apparentes les entités que vous voulez classer. Utilisez ensuite ces paramètres optimaux dans la fonction raster d'étirement en vue d'améliorer votre imagerie. | Raster Dataset | Mosaic Dataset | Raster Layer | Mosaic Layer | Image Service Layer |
spectral_detail (Facultatif) | Définissez le niveau d'importance donné aux différences spectrales des entités dans votre imagerie. Les valeurs correctes sont comprises entre 1.0 et 20.0. Il convient d'attribuer une valeur élevée lorsque vous souhaitez classer séparément des entités dont les caractéristiques spectrales sont quelque peu similaires. Des valeurs inférieures engendrent des sorties plus lisses spectralement. Par exemple, avec un détail spectral plus élevé dans une scène forestière, vous pourrez bénéficier d'une plus grande différenciation entre les différentes espèces d'arbres. | Double |
spatial_detail (Facultatif) | Définissez le niveau d'importance donné à la proximité entre des entités dans votre imagerie. Les valeurs correctes sont comprises entre un et 20. Une valeur plus élevée convient à une scène dans laquelle toutes les entités présentant un intérêt sont petites et agrégées. Des valeurs inférieures engendrent des sorties plus lisses spatialement. Par exemple, dans une scène urbaine, vous pouvez classer une surface imperméable à l'aide d'un détail spatial plus petit ou classer des bâtiments et des routes en tant que classes séparées à l'aide d'un détail spatial supérieur. | Long |
min_segment_size (Facultatif) | Combinez les segments dont la taille est inférieure à celle-ci avec leur segment voisin le mieux adapté. Les unités sont les pixels. | Long |
band_indexes (Facultatif) | Sélectionnez les canaux que vous souhaitez utiliser pour segmenter votre imagerie en les séparant par un espace. Il est préférable de sélectionner des canaux qui offrent la différenciation la plus forte entre les entités présentant un intérêt. | String |
Valeur renvoyée
Nom | Explication | Type de données |
out_raster_dataset | Spécifiez un nom et une extension pour le jeu de données en sortie. Si votre entrée était une image multispectrale, la sortie sera une image RVB 8 bits. Si l'entrée était une image en nuances de gris, la sortie sera une image en nuances de gris 8 bits. | Raster |
Exemple de code
Exemple 1 d'utilisation de l'outil SegmentMeanShift (fenêtre Python)
Cet exemple crée une sortie avec une taille de segment minimum de 20, à l'aide des entrées proches de l'infrarouge, rouges et vertes.
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")
Exemple 2 d'utilisation de l'outil SegmentMeanShift (script autonome)
Cet exemple effectue un décalage moyen de segment pour créer une sortie avec une taille de segment minimum de 20, à l'aide des entrées proches de l'infrarouge, rouges et vertes.
# 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, min_segment_size)
# Save the output
seg_raster.save("c:/output/moncton_seg.tif")