= NAME = i.segment mean shift algorithm - Identifies segments (objects) from imagery data using mean shift algorithm. = KEYWORDS = [https://grass.osgeo.org/grass73/manuals/imagery.html imagery], [https://grass.osgeo.org/grass73/manuals/topic_segmentation.html segmentation], = SYNOPSIS = i.segment i.segment [-dwap] group=name output=name [band_suffix=name] threshold=value [radius=value] [hr=value] [method=string] [similarity=string] [minsize=value] [memory=value] [iterations=value] [seeds=name] [bounds=name] [goodness=name] [--overwrite] [--help] [--verbose] [--quiet] [--ui] = Flags: = '''-d''' [[BR]] Use 8 neighbors (3x3 neighborhood) instead of the default 4 neighbors for each pixel '''-w''' [[BR]] Weighted input, do not perform the default scaling of input raster maps '''-a''' [[BR]] Use adaptive bandwidth for mean shift [[BR]] Range (spectral) bandwidth is adapted for each moving window '''-p''' [[BR]] Use progressive bandwidth for mean shift [[BR]] Spatial bandwidth is increased, range (spectral) bandwidth is decreased in each iteration '''--o''' [[BR]] Allow output files to overwrite existing files '''--h''' [[BR]] Print usage summary '''--v''' [[BR]] Verbose module output '''--q''' [[BR]] Quiet module output '''--qq''' [[BR]] Super quiet module output '''--ui''' [[BR]] Force launching GUI dialog = PARAMETERS = '''group=name [required]''' Name of input imagery or imagery group '''output=name [required]''' Name of output segmentation map '''threshold=value [required]''' Difference threshold between 0 and 1 Threshold = 0 merges only identical segments; threshold = 1 merges all '''band_suffix=name''' Suffix for output bands with shifted mean value '''radius=value''' spatial bandwidth in number of cells '''hr=value''' range bandwidth in number of cells '''method=string''' Segmentation method Options: region_growing, mean_shift, watershed '''similarity=string''' Similarity calculation method Options: euclidean, manhattan Default: euclidean '''minsize=value''' Minimum number of cells in a segment The final step will merge small segments with their best neighbor Options: 1-100000 Default: 1 '''memory=value''' Memory in MB Default: 300 '''iterations=value''' Maximum number of iterations during the mean shift process '''seeds=name''' Name for input raster map with starting seeds '''bounds=name''' Name of input bounding/constraining raster map '''goodness=name''' Name for output goodness of fit estimate map '''--overwrite''' Boolean if overtie the existing raster '''--ui''' run with the user interface mode '''--help''' '''--verbose''' '''--quiet''' = DESCRIPTION = GRASS GIS has the i.segment which provides the possibility to segment an image into objects. This is a basic step in object-based image analysis (OBIA). Currently, the module only provides one segmentation algorithm: region-growing. The code of i.segment was structured in a way that allows addition of other algorithms. It would be more useful and comprehensive to add mean-shift to the i.segment module. Mean shift segmentation is a local homogenization technique that is very useful for damping shading or tonality differences in localized objects. For the algorithm implementation of this case, basically the algorithm replaces each pixel with the mean of the pixels in a range-r neighborhood and whose value is within a distance d. The Mean Shift usually has 3 important parameters: 1) A distance function for measuring distances between pixels. Usually the Euclidean distance, but any other well-defined distance function could be used. The Manhattan Distance is another useful choice sometimes. 2) A radius (spatial bandwidth). All pixels within this radius (measured according the above distance) will be accounted for the calculation. 3) A value difference (range bandwidth). From all pixels inside radius r, we will take only those whose values are within this difference for calculating the mean.