|
![](/i/fill.gif) |
Vincent Le Chevalier <gal### [at] libertyALLsurfSP AMfr> wrote:
> > Being given E(ui, vj), with i in [1..N], j in [1..M} the grid value of the
> > data in question, and with steps du in u and dv in v, the value of E in a
> > point (u, v) is given by:
> >
> > N M
> > ---- ----
> > sin(PI*(u-u1)/du - i*PI) sin(PI*(v-v1)/dv - j*PI)
> > E(u,v)=/ / E(ui,vj)------------------------ ------------------------
> > --- --- PI*(u-u1)/du - i*PI PI*(v-v1)/dv - j*PI
> > i=1 j=1
> >
>
> Yes, I heard about this before. In fact, what this formula does is
> summing plenty of 2D sinc functions, one for each point of the grid. The
> scaling with PI is merely to ensure that each sinc is zero at all grid
> points, except the one it is centered on.
>
> This interpolation is indeed good in signal processing, because if I
> remember correctly, it does not add frequencies higher than the sampling
> you already have from the grid.
>
> But it seems prohibitive to compute, since you must consider every point
> of the grid each time you need a value. It can be sped up by considering
> a limited set of neighbours, but then it becomes tricky to ensure that
> the value and derivative(s) stay continuous.
>
> --
> Vincent
You're right, it is not costless. But I have an application using it and it
works quite fast. You might use this interpolation only if you want quality
and/or if the extra computation time is neglectable wrt the rest of the
image. Many things are a compromise.
In addition, you should not retrict the neighbours otherwise you'll get
ondulations (you obviously studied signal processing :)).
Bruno
PS: here's an interresting link:
http://www.cambridgeincolour.com/tutorials/image-interpolation.htm
Post a reply to this message
|
![](/i/fill.gif) |