10.03.2015 Views

sparse image representation via combined transforms - Convex ...

sparse image representation via combined transforms - Convex ...

sparse image representation via combined transforms - Convex ...

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!