# ConnectedComponentSegmentation

## Brief Description

Connected component segmentation and object based image filtering of the input image according to user-defined criterions.

## Tags

Image Analysis,Segmentation

## Long Description

This application allows one to perform a masking, connected components segmentation and object based image filtering. First and optionally, a mask can be built based on user-defined criterions to select pixels of the image which will be segmented. Then a connected component segmentation is performed with a user defined criterion to decide whether two neighbouring pixels belong to the same segment or not. After this segmentation step, an object based image filtering is applied using another user-defined criterion reasoning on segment properties, like shape or radiometric attributes. Criterions are mathematical expressions analysed by the MuParser library (http://muparser.sourceforge.net/). For instance, expression "((b1>80) and intensity>95)" will merge two neighbouring pixel in a single segment if their intensity is more than 95 and their value in the first image band is more than 80. See parameters documentation for a list of available attributes. The output of the object based image filtering is vectorized and can be written in shapefile or KML format. If the input image is in raw geometry, resulting polygons will be transformed to WGS84 using sensor modelling before writing, to ensure consistency with GIS software. For this purpose, a Digital Elevation Model can be provided to the application. The whole processing is done on a per-tile basis for large images, so this application can handle images of arbitrary size.

## Parameters

- [param] -in <string> The image to segment.. Mandatory: True. Default Value: ""
- [param] -out <string> The segmentation shape.. Mandatory: True. Default Value: ""
- [param] -mask <string> Mask mathematical expression (only if support image is given). Mandatory: False. Default Value: ""
- [param] -expr <string> Formula used for connected component segmentation. Mandatory: True. Default Value: ""
- [param] -minsize <int32> Min object size (area in pixel). Mandatory: False. Default Value: "2"
- [param] -obia <string> OBIA mathematical expression. Mandatory: False. Default Value: ""
- [param] -elev <string> This group of parameters allows managing elevation values. Supported formats are SRTM, DTED or any geotiff. DownloadSRTMTiles application could be a useful tool to list/download tiles related to a product.. Mandatory: True. Default Value: "0"
- [param] -ram <int32> Available memory for processing (in MB). Mandatory: False. Default Value: "128"
- [param] -inxml <string> Load otb application from xml file. Mandatory: False. Default Value: ""
- [param] -outxml <string> Save otb application to xml file. Mandatory: False. Default Value: ""

## Limitations

Due to the tiling scheme in case of large images, some segments can be arbitrarily split across multiple tiles.

## Authors

OTB-Team

## See Also

## Example of use

- in: ROI_QB_MUL_4.tif

- mask: "((b1>80)*intensity>95)"

- expr: "distance<10"

- minsize: 15

- obia: "SHAPE_Elongation>8"

- out: ConnectedComponentSegmentation.shp