image_deblur, a MATLAB code which uses the singular value decomposition (SVD) and Tikhonov regularization to deblur an image. This code is derived from Dianne O'Leary's "Scientific Computing with Case Studies".
The data for the project includes matrices A and B, and a blurred image G. Recall, from the article, that the matrices A and B are used to represent the big matrix K. K is the Kronecker product of A and B. A and B are of size 256x256, but K is much too big to work with. K will be of order (256*256)x(256*256). We want the SVD of K. Luckily, since K is a Kronecker product, its SVD can be computed by working with the smaller factors A and B, and determining factors UA and UB, SA and SB, VA and VB, such that the SVD of K is the Kronecker product of these pairs. Without actually forming K or its SVD, we can carry out the work we need to do.
To get the data, start up MATLAB, and issue the command
load ( 'blurred_data.mat' )
If you type the command
whos
you will see that you have now loaded variables called A, B and G.
To display the blurred image, use the command
imagesc ( G ), colormap ( gray )
The project file guides you through the tools you will need to unblur
this image using the singular value decomposition and Tikhonov
regularization.
In creating the ASCII version of the data in 'blurred_data.txt', the matrix A was written first, then B, then G. Each array is of dimension 256x256. The entries are written by rows. There are 4 numeric entries per line of the file, using the "E" or "exponential" format.
The information on this web page is distributed under the MIT license.
image_deblur is available in a MATLAB version.