[gdal-dev] Feature request: gauss and other interpolations in gdalwarp

Jan Heckman jan.heckman at gmail.com
Thu Apr 4 13:14:29 PDT 2013


Hello Jan,

There hasn't been a lot of response to your question, so I take the liberty
to give you my thoughts, for what they are worth.

My first guess was that you need something like a bilateral
filter<http://en.wikipedia.org/wiki/Bilateral_filter>.
Noise (detail) reduction is combined with edge preservation (readability).
If so, the code is quite simple and parameters can be used to optimize
results. It would have to be combined with a filter reducing the number of
pixels.
I'm not too sure about a (more or less) complete set of filters, i.e.
there's a lot of filters and I am not familiar with what might be thought
of as a complete set (gimp and image magick could be used as a source,
probably). However, see below, 'imageworsener'.

Maybe a test tile could serve to do a few tests. After that, I can take a
look at the work needed to incorporate filters in a fairly general way to
allow adding more filters.
Completely general appears unlikely and quite a strain on parameter
passing, documentation, support.

I've been reading up a bit on the subject of image downsampling /
upsampling. There is plenty afoot which might make you consider a different
approach from using a set of images, like this paper on multiscale edge
preserving <http://www.cs.huji.ac.il/~danix/epd/> as part of a stanford
course <http://www.stanford.edu/class/cs448f/lectures/> on filtering/image
manipulation.

There is signalprocessing analog with (down)sampling audio which would
separate low from high frequency signals and recombine them depending on
the required scale.
Don't know if that could be done continuously instead of just for integral
pixel reductions.
Would be great if this can be done in a server, perhaps using graphics
cards to speed up the image (re)construction.

There is public domain program on the subject, called
imageworsener<http://entropymine.com/imageworsener/>.
There are a lot of considered options, and source code. So this might be a
point of departure, either by incorporating it into gdal(warp), or vice
versa.

Hope this helps some,
Best regards,
Jan

On Thu, Mar 28, 2013 at 12:27 PM, Jan Hartmann <j.l.h.hartmann at uva.nl>wrote:

>  Perhaps I should clarify a bit what I meant, I haven't had any reactions
> until now, positive or negative, and it is important for me.
>
> I use Gdalwarp and gdaladdo extensively for goereferencing and tiling
> large historical maps serieses (raster scans). To display them efficiently,
> I need to create layers at different scale levels, e.g. if the original
> maps have a pixel size of 10 meters, I need to resample them to rasters
> with pixel sizes of 20, 40, 80 , 160, 320 and 640 meters, and tile all
> those maps appropriately. So the original maps have to be resampled quite
> drastically. In Gdalwarp there is no adequeate resampling algorithm, and
> you end up with very grainy map at those lower resolutions. Gdaladdo has
> several more algorithms, with gauss in many cases the most efficient.
> However, even with the gauss filter, maps resampled at very low resolutions
> turn out too hazy. For an example see the 1930 map of the Netherlands:
>
>  http://mapserver.sara.nl/topo/triang/
>
> If you zoom in to more detailed levels, you'll see the way the image
> sharpens. For the effect on black-white image choose the TMK-map (1850)
> with the top-center button. Filters like "unsharp mask" would perform much
> better in these cases.
>
> So I would like to propose two enhancements to gdal:
>
> - add additional filters to gdalwarp, gauss and the filters mentioned
> below.
> - implement more filters for gdalwarp and gdaladdo, e.g. "unsharp mask",
> or the "mode" filter asked by Jack below. Perhaps even add the possibility
> to specify parameters, like in ImageMagick
>
> I don't know how difficult is, and whether the gdal devs would find this
> really an improvement for gdal. I could do this with some ImageMagick or
> Gimp scripts, but it would be a kludge. As we are going to georeference the
> complete cadastral and topographical map base of the Netherlands from 1832
> to 1994 the next few years (millions of map-scans), this exentsion of gdal
> would come in very handy. And funding it will really be no problem at all.
>
> I would appreciate any kind of comment on this, positive or negative.
>
> Regards,
>
> Jan
>
> Dr. J. Hartmann
> Department of Geography
> University of Amsterdam
>
>  On 03/27/2013 10:13 PM, John Twilley wrote:
>
> I'm interested in this feature request as well.  Adding the mode
> resampling algorithm to gdalwarp would be very beneficial to my projects,
> right up there with being able to access the warp API from Python.  Is this
> at all possible?  Should I submit a feature request on Trac, or what?  Just
> let me know!
>
>  Jack.
>
> --
> mathuin at gmail dot com
>
>
> On Mon, Feb 18, 2013 at 8:17 AM, Jan Hartmann <j.l.h.hartmann at uva.nl>wrote:
>
>>
>>  Hi devs,
>>
>> Would it be possible to add gauss and other interpolations to gdalwarp?
>> At the moment I georeference large scans to 2000*2000 tiles at the most
>> detailed scale, and then create 2000*2000 tiles at resolutions of 2, 4 6
>> etc  times the original scale, using gdaladdo and gauss or other
>> interpolations. It would help immensely if I could do that directly with
>> gdalwarp.
>>
>>
>> Funding would probably no problem. The question is: can and should it be
>> done?
>>
>> Jan
>>
>>
>>
>> _______________________________________________
>> gdal-dev mailing list
>> gdal-dev at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/gdal-dev
>>
>
>
>
> _______________________________________________
> gdal-dev mailing listgdal-dev at lists.osgeo.orghttp://lists.osgeo.org/mailman/listinfo/gdal-dev
>
>
>
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/gdal-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20130404/f4637fac/attachment.html>


More information about the gdal-dev mailing list