Hi folks, just a general question: I opened this thread asking to implement a few gdaladdo filters in gdalwarp, and am happy to see that happen now. Would it be possible to add a few new filters to gdalwarp/gdaladdo? I'm thinking about the gauss filter for gdalwarp, and the unsharp mask filter for gdaladdo and gdalwarp. Funding would be no problem, but the question remains: does this make sense to you, and is there someone willing and able to implement it?

Jan

On 04/09/2013 11:57 PM, Etienne Tourigny wrote:



On Tue, Apr 9, 2013 at 6:50 PM, Even Rouault <[email protected] <mailto:[email protected]>> wrote:

    Le mardi 09 avril 2013 20:34:40, Even Rouault a écrit :
    > Le mardi 09 avril 2013 19:06:28, Etienne Tourigny a écrit :
    > > I have committed new warping methods average and mode to
    trunk, this will
    > > be part of gdal-1.10
    >
    > Hi Etienne,
    >
    > It would be good if you could extend the autotest suite to add
    tests for
    > those new warping methods. For that, you can likely take
    inspiration from
    > the first tests of autotest/warp/warp.py. "Reference" images
    based on
    > utmsmall.tif reference image is a bit big, but you can likely
    start from a
    > smaller source image like byte.tif instead that will produce
    reference
    > images of reasonable size to be put in svn.
    >
    > Regarding nAlgo == 2 (mode with foating point data), the
    allocations of
    > pafVals and panSums have the potential to fail if warping is
    done on a
    > large image whose floating point values are rarely identical. So
    I think
    > that VSIRealloc shoud be used instead with a test on the result
    to fail
    > properly. I'm also a bit doubtfull about the practical
    usefulness of this
    > case on real data. There might also be a performance issue due
    to the loop
    > "//Check array for existing entry" that is at the most inner
    level of the
    > algorithm.

    I stand corrected on the above comment about big memory
    consumption. The size
    of the array is limited to the number of source pixels needed to
    compute a
    target pixel, so unless you do extreme subsampling, that should be OK.

yes


    I've just noticed however that pafVals and panSums aren't free'd,
    so there's a
    memory leak currently. And the CPLRealloc() are a bit weird as
    currently coded
    :


                            int      nMaxNumPx = 0;
                            float*   pafVals = NULL;
                            int*     panSums = NULL;

                            if (nNumPx > nMaxNumPx)
                            {
                                pafVals = (float*) CPLRealloc(pafVals,
    nNumPx *
    sizeof(float));
                                panSums = (int*) CPLRealloc(panSums,
    nNumPx *
    sizeof(int));
                                nMaxNumPx = nNumPx;
                            }

    The test is always true, so CPLMalloc() would be clearer. But I
    think there
    was a will to move nMaxNumPx, pafVals, panSums before the top
    loops. So that
    should likely be done.


I thought it is weird also, but again copied over from overview code.

I thought about running valgrind, but then forgot. I will take your suggestions into consideration, thanks!


_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to