sparse image representation via combined transforms - Convex ...
sparse image representation via combined transforms - Convex ...
sparse image representation via combined transforms - Convex ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
152 APPENDIX B. FAST EDGELET-LIKE TRANSFORM<br />
From the Fourier slice theorem and the above equality, we have<br />
∫<br />
ˆf (s)<br />
θ<br />
(ρ) = R(f,ρ ′ ,θ)e −2πiρρ′ dρ ′ .<br />
ρ ′<br />
Taking the inverse Fourier transform, we have<br />
∫<br />
(s)<br />
R(f,ρ,θ) = ˆf<br />
θ<br />
(ρ ′ )e 2πiρρ′ dρ ′ .<br />
ρ ′<br />
Thus in dimension 2, the Radon transform of f is the inverse 1-D Fourier transform of<br />
a specially sampled (along a straight line going through the origin) 2-D Fourier transform<br />
of the original function f. Since there are fast algorithms for the Fourier transform, we can<br />
have fast algorithms for the Radon transform.<br />
B.2 Discrete Algorithm<br />
To some extent, the edgelet transform can be viewed as the Radon transform restricted to<br />
a small square. There is a fast way to do the Radon transform. For an N by N <strong>image</strong>,<br />
we can find an O(N 2 log N) algorithm by using the fast Fourier transform. The key idea<br />
in developing a fast approximate edgelet transform is to do a discrete version of the Radon<br />
transform. A discrete version of the Radon transform is the algorithm we presented in this<br />
section.<br />
The Radon transform was originally defined for continuous functions. The Fourier slice<br />
theorem is based on continuous functions also. Our algorithm has to be based on discrete<br />
data, say, a matrix. A natural way to transfer a matrix to a continuous function is to<br />
view the matrix as a sampling from a continuous function. We can calculate the analytical<br />
Radon transform of that continuous function, then sample it to get the corresponding<br />
discrete result.<br />
The first question arising is how to interpolate the data. The second question is, because<br />
the Radon transform uses polar coordinates, and a digital <strong>image</strong> is generally sampled on a<br />
grid in the Cartesian coordinate, how do we switch the coordinates and still preserve the<br />
fast algorithms.<br />
Section B.2.1 gives an outline of the algorithm. Section B.2.2 describes some issues in<br />
interpolation. Section B.2.3 is about a fast algorithm to switch from Cartesian coordinates<br />
to polar coordinates. Section B.2.4 presents the algorithm.