[gdal-dev] gdalwarp vs gdal_translate for resizing images

Even Rouault even.rouault at spatialys.com
Fri Oct 28 05:21:27 PDT 2016


Le vendredi 28 octobre 2016 10:37:27, Rutger a écrit :
> While on the subject, i'm not aware of the implementation details of GDAL's
> bilinear algorithm**. But normally you go from four source points/pixels to
> a new one. How is this handled in extreme downsampling cases like Travis is
> doing? 

All resampling methods (except Gauss but that should likely be fixed, and 
nearest neighbour of course) since GDAL 2.0 take into account all the needed 
source pixels.

For a bilinear interpolation without resampling (or with oversampling), the 
weight function (in 1D) is :
1 - |x| if |x| <= 1
0 otherwise

where x is the distance of the center of the target pixel (considered in the 
dimensions of the source image) to the center of the source pixel considered

When downsampling by a factor of N, it is generalized as:
(1 - |x/N|)/N if |x| <= N
0 otherwise
So you have 2*N pixels taken into account

So when downsampling by a factor of 20, it is (2*20)^2 = 1600 source pixels 
taken into account for bilinear.

Example, let's consider test.asc being:

ncols        6
nrows        6
xllcorner    0
yllcorner    0
cellsize     0
 0   0   0   0   0   0
 0   100 0   0   0   0
 0   0   0   0   0   0
 0   0   0   0   0   0
 0   0   0   0   0   0
 0   0   0   0   0   0

$ gdal_translate test.asc /vsistdout/ -of aaigrid -r bilinear -outsize 50% 50%
ncols        3
nrows        3
xllcorner    0.000000000000
yllcorner    0.000000000000
cellsize     0.000000000000
 18 5 0
 5 2 0
 0 0 0

This is the same result you'd got by using imagemagick
"convert -filter triangle -resize 50% in.tif out.tif"


Whereas average (after https://trac.osgeo.org/gdal/changeset/35991, so this 
email took me all the morning lol) will return:

$ gdal_translate test.asc /vsistdout/ -of aaigrid -r average -outsize 50% 50%
ncols        3
nrows        3
xllcorner    0.000000000000
yllcorner    0.000000000000
cellsize     0.000000000000
 25 0 0
 0 0 0
 0 0 0

Even

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the gdal-dev mailing list