image_deblur_test, a MATLAB code which calls image_deblur(), which uses the singular value decomposition (SVD) and Tikhonov regularization to deblur an image. This is a version of Diane O'Leary's Project #1, "I Can See Clearly Now".
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 )
In creating the ASCII file, 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, a MATLAB code which calls image_deblur(), which uses the singular value decomposition (SVD) and Tikhonov regularization to deblur an image. This is a version of Diane O'Leary's Project #1, "I Can See Clearly Now".