components.zone.zoneplategenerator
- class ZonePlateGenerator(config={}, **kwds)[source]
Bases:
Component
Zone 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-editor
tool to connect a zone plate generator and Qt display, open the generator’s configuration dialog, setlooping
torepeat
and run the network so you can experiment with the settings as you read this documentation.Each parameter is normalised so a value of
1.0
covers the entire frequency “gamut”. For example, settingkx2
to1.0
will sweep the entire horizontal frequency range over the width of the picture.name
controls
k0
phase at zero frequency
kx
horizontal frequency at x=0 (left hand side of picture)
ky
vertical frequency at y=0 (top of picture)
kt
temporal frequency at t=0 (start of sequence)
kx2
horizontal frequency with x
kxy
horizontal frequency with y
kxt
horizontal frequency with t
kyx
vertical frequency with x
ky2
vertical frequency with y
kyt
vertical frequency with t
ktx
temporal frequency with x
kty
temporal frequency with y
kt2
temporal frequency with t
Note that these controls are not all independent. For example,
kxy
andkyx
produce 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.