In many applications, we need to work with a continuous
image (i.e., one whose domain is the Euclidean plane
R2)
or at least an image with arbitrary fine resolution.
But in practice, images are discrete, say
with domain given by the integer grid
Z2.
There are many standard ways to transform a
continuous image from a discrete image.
We are interested in a class of transformations that may be called
geometric
as each is based on specifying a geometric shape
S
that is convex and symmetric about the origin.
Here is how the geometric transformation works.
Let the discrete image be
box functionBS: R2 → [0,1] is defined by BS(x,y)= 1/|S| when (x,y) is in S, and BS(x,y)= 0, otherwise. Let J0 be the continuous image J0: R2 → [0,1] where
The well-known bilinear interpolation scheme corresponds to the case where S is the unit square. We implemented the case where S is a circle of unit area. Here is a picture of how JS is computed when (x,y) is at a grid point.
Our applications need an extension of this algorithm to allow blurring at larger scales. This could be achieved by letting S to be a disc of any size. Unfortunately, such an algorithm would be more complicated to implement. Instead, we propose to "iterate" the algorithm for the case of unit area disc. This seems to have nice properties, as the following images show. Here is the original image,
Original (x 8) .
First Disc Iterate .
First Bilinear Iterate.
Fifth Disc Iterate.
Fifth Bilinear Iterate.