CIS 4930.006S20/CIS 6930.013S20: Computational 
Methods for Imaging and Vision 
Spring 2020 
Homework #4 
The University of South Florida 
Department of Computer Science and Engineering 
Tampa, FL 
Assigned: April 06, 2020 
Due: April 19, 2020 (11:59 PM) 
1 1D and 2D Convolutions 
(a) Write your own Matlab/Python function to implement 1D discrete convolution, between two 
vectors: 
• Use it to compute the convolution between the following two vectors: 
h = 
 
−3 
9 
4 
−10 
9 
 , and f = 
 6−5 
3 
 
• Verify the output of your result by computing the h ? f by hand. 
(b) (Optional) In this question, you will compute the convolution between an image of your choice, 
and the Gaussian filter. The PSF for the Gaussian filter is: 
H = 
1 
320 
 
1 4 6 4 1 
4 16 24 16 4 
6 24 36 24 6 
4 16 24 16 4 
1 4 6 4 1 
 . 
• For an image of your choice (please keep it PG!), load the image (read it in as a matrix), on 
Matlab you can use the function: ‘imread’. 
• Convolve that image with the matrix H. 
• Display the result of your discrete convolution. 
• Comment on the difference between the result and the original image. 
1 
2 Digital Holography 
Holography is a 3D imaging technique, in the sense that it allows recreate the 3D scene (optically or 
digitally) from a single intensity measurement. In this problem, we will explore the general idea of 
in-line (Gabor) holography and understand the unique feature about holography from the linear system 
perspective. 
A schematic of the in-line holography is shown in Fig. 2. To record a hologram, a coherent light source 
(e.g. laser) is needed to illuminate the 3D scene. The hologram (the intensity image captured by the 
camera) is the result from the interference between the unperturbed illumination (reference beam) and 
the light scattered from the object. 
The formation of the hologram from a 2D object can be approximated using the following linear shift 
invariant (LSI) model: 
gout(x, y) = gin(x, y; z) ? h(x, y; z), (1) 
where ? denotes the 2D convolution (i.e. over (x, y)), gout(x, y) is the output term of interest contained 
in the hologram, gin(x, y; z) is the object function, and h(x, y; z) is the point spread function (PSF), 
determined by the free-space propagation and diffraction theory, which has the following form, 
h(x, y; z) = 
1 
jλz 
ejk 
x2+y2 
2z , (2) 
and the corresponding transfer function, 
H(fx, fy; z) = F{h(x, y; z)} = e−jpiλz(f2x+f2y ), (3) 
where k = 2pi/λ is the wavenumber, λ is the wavelength of illumination, (x, y) denote the lateral 
coordinates and z denotes the axial direction (along which the light propagates) and (fx, fy) denote the 
spatial frequency coordinates, according to the following Fourier transform relation 
H(fx, fy; z) = 
∫ +∞ 
−∞ 
∫ +∞ 
−∞ 
h(x, y; z)e−j2pi(fxx+fyy) dxdy, (4) 
note that we have used the substitutions (or change of variables) ωx = 2pifx and ωy = 2pify in the usual 
definition of the Fourier transform we saw in class. 
(a) Construct the forward models in both operator and matrix forms. Assume square pixels with 
size ∆ and number of pixels in each spatial dimension is N . Discretization of the object space is 
performed on the standard basis with square pixel of size δ, and number of pixels in each spatial 
dimension M is chosen such that Mδ = N∆. 
(b) Find adjoint, and inverse of the system. 
(c) Write a Matlab/Python script for the forward model in (a). 
(d) Plot the system transfer functions with the following parameters: λ = 0.5 µm, N = 1000. 
(i) Keep z = 50 mm fixed, δ = ∆ = 2 µm, 5 µm, 10 µm, 20 µm. How does sampling affect the 
performance of digital holography? 
(ii) Keep δ = 5 µm fixed, while z ranges from 30 mm to 70 mm (use a small step-size). How does 
object distance affect the performance of digital holography? 
(iii) Keep ∆ = 5 µm and z = 50 mm fixed, while δ ranges from 1 µm to 10 µm in 2 µm step size. 
How does discretization of the object affect the performance of digital holography? 
2 
Figure 1: Digital holography schematic 
Digital holographic reconstruction: Inverse Write Matlab scripts to complete the following questions. 
Submit both your Matlab scripts as well as the output results. The object, ‘f2’ located at z1 = 50mm is 
given in the mat-file o2.mat. Use the following parameters throughout this problem for forming the 
hologram: λ = 0.5µm, N = 1000, and ∆ = δ = 5µm. Consider the object o2 is present. 
(e) Simulate the hologram using the discrete forward model (y = Ax) derived from. 
(f) Next, we will consider holographic reconstruction using the same parameters as in (e). 
• What is the condition number of the imaging matrix A? 
(g) Finally, we will investigate the effect of Gaussian noise. Gaussian noise is commonly encountered 
in imaging. The fundamental assumption is that the noise is independent of the measured intensity. 
The simplest case is the white Gaussian noise (WGN), which assumes the mean as the noise-free 
image Inoisefree, and the same variance nstd across all pixels. The noisy image under WGN, Inoisy, 
can be generated using the following Matlab script: 
Inoisy = normrnd(Inoisefree, nstd, Ny, Nx); 
(where Ny , Nx are the dimensions of the image along vertical and horizontal directions.) 
Consider white Gaussian noise (WGN) with nstd = 0 + 0j (i.e. noise-free), 0.1 + 0.1j, 0.5 + 0.5j: 
• What is the direct deconvolution result? 
• What is the result from the least square solution? 
• What is the optimal Tikhonov deconvolved result? 
• Comment on what you have observed by comparing the three results. Why? 
3 
(Optional for Extra credit: 3D Digital Holography) Consider the 3D holographic imaging problem. 
The formation of the hologram from an extended scene can be approximated using the following linear 
model 
gout(x, y) = 
∫ 
zl 
gin(x, y; zl) ? h(x, y; zl)dzl (5) 
where ? denotes the 2D convolution in (x, y), gin(x, y; zl) is the object function at the distance zl. 
(h) Construct the forward models in both operator and matrix forms. Assume that the discretization 
of the object space is performed on the standard basis with lateral spacing δx = δy = δ, and axial 
spacing δz . 
(i) Is the system shift invariant? If so, plot the system transfer function. If not, plot the singular values 
of the system. 
(j) Find the image space, object space, range, null space, and adjoint of the system. Does the inverse 
exist? 
(k) Write a Matlab/Python script for the forward model in part (e).