components.zone.zoneplategenerator
- class ZonePlateGenerator(config={}, **kwds)[source]
Bases:
ComponentZone plate test pattern generator.
A zone plate (in this context) is a 3 dimensional (horizontal, vertical & temporal) frequency sweep which can be a useful test pattern in image processing applications. BBC R&D Report 1978/23 describes some typical uses. A static circular zone plate (see recipes below) resembles the Fresnel zone plates used in optics.
At first sight there are an alarming number of configuration values, but you normally only need to set three or four of them. I suggest using the
pyctools-editortool to connect a zone plate generator and Qt display, open the generator’s configuration dialog, setloopingtorepeatand run the network so you can experiment with the settings as you read this documentation.Each parameter is normalised so a value of
1.0covers the entire frequency “gamut”. For example, settingkx2to1.0will sweep the entire horizontal frequency range over the width of the picture.name
controls
k0phase at zero frequency
kxhorizontal frequency at x=0 (left hand side of picture)
kyvertical frequency at y=0 (top of picture)
kttemporal frequency at t=0 (start of sequence)
kx2horizontal frequency with x
kxyhorizontal frequency with y
kxthorizontal frequency with t
kyxvertical frequency with x
ky2vertical frequency with y
kytvertical frequency with t
ktxtemporal frequency with x
ktytemporal frequency with y
kt2temporal frequency with t
Note that these controls are not all independent. For example,
kxyandkyxproduce the same effect on a square image (and a subtly different effect on non-square images).Recipes
static circular (or eliptical for non-square images):
kx=0.5, kx2 = 1.0, ky=0.5, ky2=1.0
static hyperbolic (entire horizontal gamut):
kx=0.5, kxy = 1.0, ky=0.5
static hyperbolic (entire vertical gamut):
kx=0.5, ky=0.5, kyx = 1.0
circular at temporal frequency of 1/4 the frame rate:
kx=0.5, kx2 = 1.0, ky=0.5, ky2=1.0, kt=0.25
all temporal frequencies across width, all vertical frequencies across height:
ky=0.5, ky2=1.0, ktx=1.0
Comments or questions? Please email jim@jim-easterbrook.me.uk.