GIDE: Graphical Image Deblurring Exploration
Version 5.1 January 2015

This Matlab package was developed by Brianna Cash and Dianne O'Leary 
at the University of Maryland. Consult the user's manual (manual.pdf)
for complete details.

GIDE allows user-aided deblurring of grayscale images.

GIDE helps practitioners restore a blurred image using
their knowledge or intuition about the true image, but safeguarding 
from possible bias by validation using statistical diagnostics 
based on an assumption of Gaussian added noise.  GIDE allows 
practitioners (or students) to visually explore the range of 
statistically likely solutions resulting from any of three 
regularization methods: Tikhonov, truncated SVD, and total variation.

It is built upon RestoreTools which should be downloaded from 
http://www.mathcs.emory.edu/~nagy/RestoreTools/

Then edit the GIDE file startGIDE.m} to set path\_to\_RestoreTools
and path\_to\_GIDE to the complete directory names where you have 
stored these two packages.

Then, typing startGIDE into Matlab should bring up the GUI.

Parameter_Selection contains three folders: 

GUI: 
This folder contains all the relevant files for the GUI interface.  
To start the GUI, run 'startGIDE.m'. Two images ("Cell" and
"Modified Shepp-Logan") and two blurring functions (Gaussian and
Boxcar) are included. Three regularization methods (Tikhonov, 
Truncated SVD and total variation) can be used. Users can also
load their own problem (blurring matrix, blurred image, 
standard deviation of the noise). See 'MyData.m' for a model.

Note that for images larger than about 32x32, our implementation of
the total variation method will work VERY SLOWLY.  

TotalVariation: 
This folder contains the code for the Total Variation (TV) method 
for image deblurring.  The TV method can be run without the GUI 
by running 'TVPrimDual.m'

Diagnostics: 
This folder contains the code to compute three statistical diagnostics 
used within the GUI, each of which can be used independently of the GUI.

***********************************************************************
AN INDEX OF MATLAB FILES IN GIDE:

startGIDE.m  Script to start up the GIDE system.

GUI_Interface/BoxCarBlur.m  Forms the blurring matrix for boxcar blur of a square image.
GUI_Interface/GaussBlur.m   Forms the blurring matrix for Gaussian blur of a square image.
GUI_Interface/GIDE.m        Initializes the GUI. 
GUI_Interface/MyData.m      Model code for how to load a different problem.
GUI_Interface/TestImage.m   Initializes a square test image: random, cell, or Shepp-Logan.

ResidDiagnostics/Diagnostic1.m Determines whether the computed image satisfies the first statistical diagnostic.
ResidDiagnostics/Diagnostic2.m Determines whether the computed image satisfies the second statistical diagnostic.
ResidDiagnostics/Diagnostic3.m Determines whether the computed image satisfies the third statistical diagnostic.

TotalVariation/Cmult.m Multiplies a vector by a matrix for TV evaluation.
TotalVariation/cstep.m	Used by cvsrch. Translation from Minpack.
TotalVariation/cvsrch.m Performs a linesearch to find a better solution. Translation from Minpack.
TotalVariation/Dmult.m Multiplies a vector by a matrix for TV evaluation.
TotalVariation/DualStep.m Computes the dual step direction for a TV iteration.
TotalVariation/fcn.m Evaluates the minimization function for TV.   
TotalVariation/findsd.m Computes the maximum stepsize for the current primal-dual iteration.  
TotalVariation/formE.m Forms a matrix used in derivative calculations in TV.
TotalVariation/formF.m Forms a matrix used in derivative calculations in TV.
TotalVariation/paramtest.m Used with Matlab's fzero to compute an initial guess at a regularization parameter for TV.
TotalVariation/TVPrimDual.m Implements an algorithm by Chan, Golub, and Mulet for finding a TV solution to the image deblurring problem.
