Explore translation, scaling, and rotations by arbitrary angles.
Create a way to easily combine these three types of transformations
into a single transformation that takes several arguments. Make
up puzzles for students, where they are given a pair of images
that are related by such a sequence of transformations, and they
must come up with the parameters that correctly map one image
into the other.
Write a routine that takes two images A and B, and generates the
frames of a dissolve sequence, whereby the sequence starts out
with A and ends up with B, but A gradually fades out as B fades
in. Display either a 6-frame dissolve or an 8-frame dissolve
on your screen, depending on the size of your monitor. Experiment
with the weighting of the two images. Does a linear fade-out/fade-in
work as well as a sigmoid function such as one of those used commonly
in neural net backpropagation algorithms?
g(h) = 1 / ((1 + e^(-h))
Illustrate the use of symmetry groups of transformations on images.
Provide a function that takes a transformation (the "generator")
and applies over and over again to an image (with each result
being shown in a different window) until the image that results
is the same as the original, or a maximum number of windows is
reached. If you use a transformation that causes a loss of image
information, demonstrate the effects of error accumulation. At
what point is the loss of information noticeable? At what point,
if any, does all the information become lost?
Create a collection of functions and transformations that make it easy to create stencils (images with holes through which you can see other images below). Explore the mathematical properties of stencils. When you combine two stencils, is the operation commutative? When you combine three, is the operation associative?
Demonstrate edge detection on images and explain its relation to differentiation.
What if you transform an image by mapping each pixel value to
a different one, much as text ciphers use permutations on
the alphabet? Try this by making up some suitable pixel
transformations. Do they do a good job of disguising images?
Why or why not? Think about what might make good codes for
images.