Newsgroups: sci.image.processing
Path: cantaloupe.srv.cs.cmu.edu!europa.chnt.gtegsc.com!howland.reston.ans.net!Germany.EU.net!Munich.Germany.EU.net!eso.org!news
From: ndevilla@eso.org (Nicolas Devillard)
Subject: Re : Resolution
X-Nntp-Posting-Host: mc6
Message-ID: <1995Jun26.174213.10607@eso.org>
Sender: news@eso.org
Reply-To: ndevilla@eso.org
Organization: ESO - European Southern Observatory, Garching by Munich
Date: Mon, 26 Jun 1995 17:42:13 GMT
Lines: 17

Why not try a sinc interpolation kernel on the 16 nearest neighbours ? You could just iterate until you get the size you want (of course, accumulating errors, but getting a visually acceptable result).

The sinc interpolation kernel derives from a perfect door function in Fourier domain. As far as I know, this is the best method on "everyday" images. Normalize your sinc function by saying that, if the interpolated position falls exactly on a pixel, the sinc function is zero on all other pixels. You will get something like :

sinc(x) = (sin(2*pi*x)) / (2*pi*x)

which you could tabulate on a hundred values between 0 and 2 (this function is symmetrical), and use it as interpolation kernel.

Many other kernels are quite fine : Hann, Hamming, Hanning (it is not a joke), Lanczos, or again, have a look on interpolation kernels in the literature about theory of information.

I hope you know how to implement a kernel for a resampling function. If not, mail me your exact need, for I cannot reach you (no valid email address was given).

Cheers,
Nicolas



