Skip to content
odebeir edited this page Oct 5, 2012 · 1 revision

Basically these filters compute local histogram for each pixel. Histogram is build using a moving window in order to limit redundant computation. The path followed by the moving window is left to right, down, right to left, down etc

A comparison is proposed with cmorph.dilate algorithm to show how computation costs evolve with respect to image size or structuring element size. This implementation gives better results for large structuring elements.

A local histogram is update at each pixel by introducing pixel entering the structuring element border and by removing those leaving it. The histogram size is 8bit (256 bins) for 8 bit images and 2 to 12 bit (up to 4096 bins) for 16bit image depending on the image maximum value. Image with pixels higher than 4095 raise a ValueError.

The filter is applied up to the image border, the neighboorhood used is adjusted accordingly. The user may provide a mask image (same size as input image) where non zero value are the part of the image participating the the histogram computation. By default all the image is filtered.

Clone this wiki locally