8. FFT and image processing

This lesson will cover two aspects of scientific computing:

As an example, we will explore the ideas of this paper (A. Averbuch, R. Coifman, D.L. Donoho, M. Elad, and M. Israeli, Fast and Accurate Polar Fourier Transform, Journal on Applied and Computational Harmonic Analysis, Vol. 21, pp.145-167, 2006, code by © M.Elad et al., 2005) on optimising FFT in polar coordinates. The students are expected to read and report on the main ideas of the paper in the preparation of their project.

Matlab/Octave have a library of basic image manipulation routines, and many extensions have been developed by users that can be loaded and made use of. For examples, check out https://octave.sourceforge.io/packages.php.

Depending on whether the package you are interested is installed or not, you may simply issue the calling command, or first download and install it. Typically, you download and save the package file (e.g. the current image package is image-2.14.0.tar.gz), and then install it like this:

  pkg install image
When you run it as a non-privileged user, it gets installed into your own filespace only. After the package is installed, you may need to explicitly load it into your script, by specifying somewhere close to the beginning of the script:
  pkg load image

Note that the image package used above as an example is actually already installed on our cluster and these specific commands should not be necessary.

To begin with, let's see how a matrix of numbers can be viewed as an image, and how an image can be imported and converted into a matrix of numbers.

Homework