[postgis-users] Better way of removing pixelation with postgis raster

Pierre Racine Pierre.Racine at sbf.ulaval.ca
Wed Jul 18 13:21:03 PDT 2012


> I think you could easily implement a filter function to remove the 1 pixel type of
> island as a custom function of ST_MapAlgebraFctNgb(). See
> http://www.postgis.org/documentation/manual-
> svn/RT_ST_MapAlgebraFctNgb.html The size of the window should be 3x3 in this
> case. Return the pixel value if at least one neighbour has a value, null otherwise.
> 
> I am 99% sure ST_MapAlgebraFctNgb would be faster on big rasters than
> vectorizing/union/rasterizing...
> 
> However I have no idea how to implement such a filter to remove bigger islands
> (or speckles?) spanning on many pixels. Maybe with a little of research...

Actually your first class of pixels to remove have to be 4 pixels. No importance if they are aligned on one row or column? To remove speckles 2x2 you would have a window of 4x4 instead. But this would not remove the 

OOO
O

types of arrangement and the 

O
OO
   O

type of arrangement.

Pierre



More information about the postgis-users mailing list