Morphological Building / Shadow Index (MBI/MSI) implementation through OTB?


I am looking to extract building footprints from VHR satellite imagery, using a mathematical morphological approach. I am aware there are some tools under ‘Feature Extraction’ in the OTB toolbox (e.g. Binary Morphological Operation, Morphological Profiles Analysis), etc. however, I was wondering if there was any knowledge regarding the application of the MBI index specifically through OTB?

There are plenty of research papers published, albeit, I am struggling to find a detailed breakdown of the methodology.

Either through Monteverdi or QGIS plugin.

I would be extremely grateful if anyone could point me in the direction of useful resources in this area.

Many thanks in advance,


There is no specific application for MBI/MSI computation in OTB. The library does not have a lot of features for morphological image processing …

Maybe MBI could be implemented step by step using grayscale opening and closing to compute the white/black top hat operators. However there is, to my knowledge, no opening or closing by reconstruction in OTB, so top hat by reconstruction might be hard to implement … Maybe by using recursively grayscale morphology and BandMath to perform the reconstruction operation (this will be hard to do in gui, if you want to do it would be easier with a shell/python script). And the [Morphlogical profile application] can be used to compute the profile.

But this is a lot of work to compute these indices, it would be nice to add some more morphlogical algorithms to OTB like Opening/closing by reconstruction, top hats, gradients and maybe MBI/MSI if it is relevant.


AU - Huang, Xin
AU - Zhang, Liangpei
PY - 2012/02/01
SP - 161
EP - 172
T1 - Morphological Building/Shadow Index for Building Extraction From High-Resolution Imagery Over Urban Areas
VL - 5
DO - 10.1109/JSTARS.2011.2168195
JO - IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing - IEEE J SEL TOP APPL EARTH OBS
ER -

1 Like

@jenniferkilleen: If you are still interested in a solution to your problem, maybe this python script shall help you

@Cedric: By the way regarding the impressive amount of people looking for building extraction solution(s), I think that the implementation of a such operation into OTB architecture would be great … :wink: Anyway thanks for your work