Discrete Fourier Analysis and Wavelets Applications to Signal and Image Processing

S. Allen Broughton and Kurt M. Bryan

Contents

Cover Images: The image below was used in preparing images for the the book cover. It shows approximations of a picture of lilly pads at Kurt Bryan's home.

1. Overview and Wiley site for the book

This book grew out of course notes for a course we alternately teach called Mathematical Methods of Image Processing. A brief description of the text from the Wiley site linked below follows:

• Focuses on the underlying mathematics, especially the concepts of finite-dimensional vector spaces and matrix methods, and provides a rigorous model for signals and images based on vector spaces and linear algebra methods
• Emphasizes discrete and digital methods and utilizes MATLAB(r) to illustrate these concepts
• Combines traditional methods such as discrete Fourier transforms and discrete cosine transforms with more recent techniques such as filter banks and wavelet
• Strikes an even balance in emphasis between the mathematics and the applications with the emphasis on linear algebra as a unifying theme.

For more detail on the book:

• Wiley site for the book
• Please contact Wiley for evaluation copies and ancillaries. Instructions are on the Wiley book site above.

2. Contact the authors

 S. Allen Broughton brought@rose-hulman.edu http://www.rose-hulman.edu/~brought/ Kurt M. Bryan bryan@rose-hulman.edu http://www.rose-hulman.edu/~bryan/

3. Matlab Routines in the book

Here are the Matlab routines from the text and a few additional ones, as a zip file.

Here is a table with a link and description to each routine as a text file.

 Routine Description Matlab Toolbox Requirements audiocompress.m compress an audio signal blkdct2.m block Discrete Cosine Transform of an mxn image Image processing toolbox blkidct2.m inverse block Discrete Cosine Transform of an mxn image Image processing toolbox circconv.m circular convolution by a causal filter crevconv.m circular convolution by time-reversal of a causal filter circconv2.m 2-D circular convolution by a causal filter crevconv2.m 2-D circular convolution by time-reversal of a causal filter dyadicbiortho.m compute analysis and synthesis scaling and wavelet functions on dyadic points for a biorthognal filter bank dyadicortho.m compute analysis and synthesis scaling and wavelet functions on dyadic points for an orthogonal filter bank fullwave.m recursive application of wave1.m, for full wavelet transform gausswindow.m generate Gaussian window graymap.m set up a greyscale colormap hammingwindow.m generate Hamming window imwave1.m do a single stage transform (circular convolution) on an image imwavefull.m recursive application of imwave1.m, for full wavelet transform invfullwave.m recursive application of invwave1.m, inverts fullwave.m invimwave1.m invert imwave1 routine invimwavefull.m inverts imwavefull() routine invwave1.m inverts single-stage DWT command wave1() jpegdemo.m simple JPEG compression demo jpegprogressive.m simple JPEG compression/progressive transmission demo kdct.m substitute for Matlab's dct() command kdct2d.m substitute for Matlab's dct2() command kdownsample.m downsample a row vector or matrix kidct.m substitute for Matlab's idct() command kidct2d.m substitute for Matlab's idct2() command kupsample.m upsample a row or column vector rectwindow.m generate rectangular window rgb2gray.m convert rgb image to reasonable grayscale approximation spectro.m computes a spectrogram for a vector triwindow.m generate triangular window wave1.m one pass forward wavelet transform on input array

4. Other Matlab routines

These MAtlab routines below have been used by the authors in teaching our course Mathematical Methods of Image Processing. They are not directly referenced in the book but were developed at the same time as the other routines. In column labelled routine there may be an additional .pdf file which is the published output

 Routine Description Matlab Toolbox Requirements and required m-files RGBOpic.m show red, blue, and green channels of an image. RGBOmanny.pdf example of the above RGBOpic.m noisyimage.m show image before and after contamination with noise. energy.m compute the normalized energy of a vector or matrix the sum of squares is divided by the size of the signal energyhist.m energyhist.pdf show energy "histogram" as a function of radial frequency energy.m DFT routines wave2d.m wave2dtrigcc.m wave2dtrigcs.m wave2dtrigss.m shows various pure 2D wave forms wave2dlband.m shows a linear band of 2D exponential wave forms, both the real and imaginary part wave2dcband.m shows a circular band of 2D exponential wave forms, both the real and imaginary part dft1demo1.m dft1demo1.pdf show pairs of signals and unshifted DFTs dft1demo2.m dft1demo2.pdf show pairs of signals and shifted DFTs dft1demo3.m show how DFT captures frequency dft2demo1.m show pairs of images and unshifted DFTs as well as log(1+|DFT|) dft2demo2.m show pairs of images and shifted DFTs dft2demo3.m brick wall low and high pass filters dft2demo4.m show symmetrically replicated image and log of shifted |DFT| sliceswap.m show that translation has no effect on |DFT| DCT routines analsynDCT.m show analysis and synthesis waveforms for the DCT, show stepwise reconstruction of a signal image blkgroupfreqs.m compute block DCT, rearranging all coefficients of same frequency in different blocks into a single block blkfreqhist.m display the histogram of a DCT coefficent in the block DCT of X, for a given frequency vector blkfreqcomp.m compute block DCT pre-image of a single frequency vector image, blkidct2.m wave1dDCT.m show complete family of 1D DCT waveforms image wave2dDCT1.m show complete family of 2D DCT waveforms image wave2dDCT2.m show complete family of 2D DCT waveforms in diagonal order image DCTmanny.m DCTmanny.pdf show block frequencies and histogram image, blkdct2.m, blkgroupfreqs.m, , blkfreqhist.m mannybyfreqs.m show the block components of a single frequency cycling through all frequencies using the mandrill image image, blkdct2.m, blkfreqcomp.m Quantization, threshholding, and compression quantdequant.m show quantization and dequantization of an image, compute distortion energy.m clippic.m clip out low energy frequencies of an image energy.m ratedistortion.m threshold a signal at various levels and show rate distortion curve energy.m Convolution routines circconvs Sparse circular 1D convolution by a causal anti-causal filter pair circconvs2 Sparse circular 2D convolution by a causal anti-causal filter pair conv1demo1 show a signal and convolution pair, and DFT of convolving mask circconv.m conv1demo2 show operation of convolution on real signals for small real masks circconv.m convomat.m returns a matrix that performs circular convolution convtheorem show 1D pure wave forms and their convolution with a mask, illustrating the eigenvalue property circconv.m blurimage blur an image and add noise circconvs2.m edgedet edge detection circconv2.m DWT routines dwtmatrix.m construct matrix effecting 1D DWT transform wavelet analsynDWT.m show analysis and synthesis waveforms for the DWT, show stepwise reconstruction of a signal wavelet, dwtmatrix.m dwt1demo2.m shows 1, 2 and 3 stage DWT multiresolution decomposition of a signal wavelet dwt2demo.m shows 1-stage decomposition of image into approximation and details wavelet Filter design tap4show.m show one parameter family of orthogonal 4 tap filters tap4show1d.m show one parameter family of orthogonal 4 tap filters and deomposition of a simple signal wavelet tap4show2d.m show one parameter family of orthogonal 4 tap filters and deomposition of an image wavelet