sparse image representation via combined transforms - Convex ...

sparse image representation via combined transforms - Convex ... sparse image representation via combined transforms - Convex ...

convexoptimization.com
from convexoptimization.com More from this publisher
10.03.2015 Views

158 APPENDIX B. FAST EDGELET-LIKE TRANSFORM B.2.4 Algorithm Here we give the algorithm to compute the fast edgelet-like transform. Note when the original image is N by N, our algorithm generates an N × 2N matrix. Recall that I(i, j) denotes the image value at pixel (i, j), 1 ≤ i, j ≤ N. Computing the discrete Radon transform via Fourier transform A. Compute the first half of the DRT matrix (size is N by N): 1. For j =0to N − 1 step 1, take DFT of (j + 1)th column: [g(0,j),g(1,j),... ,g(N − 1,j)] = DFT N ([I(1,j+1),I(2,j+1),... ,I(N,j + 1)]); End; 2. For k =0to N − 1 step 1, (a) pointwise multiply row { k +1,[g(k, 0),g(k, 1),... ,g(k, N − 1)], ( ) } with complex sequence e −2π√ −1 j·s(k)+∆(k) j2 2 : j =0, 1,... ,N − 1 ; (b) convolve it with complex sequence { } e π√ −1∆(k)(t) 2 : t =0, 1,... ,N − 1 ; (c) pointwise { multiply the sequence with complex } sequence e −2π√ −1∆(k) l2 2 : l =0, 1,... ,N − 1 ; we get another row vector: { F ( k N ,s(k)+l · ∆(k)) : l =0, 1,... ,N − 1} ; End; 3. For l =0to N − 1 step 1, taper the (l + 1)th column by the raised cosine, then take inverse 1-D DFT; End; B. Compute the second half of the DRT matrix (size is N by N): 1. For i =0to N − 1 step 1, For j =0to N − 1 step 1, modulate: g(i, j) =I(i +1,j+1)e −2π√ −1 j N ;

B.3. ADJOINT OF THE FAST TRANSFORM 159 End; End; 2. For i =0to N − 1 step 1, take 1-D DFT of the (i + 1)th row: [g(i, 0),g(i, 1),... ,g(i, N − 1)] = DFT N ([I(i +1, 1),I(i +1, 2),... ,I(i +1,N)]); End; 3. flip matrix (g(i, k)) 0≤i,k≤N−1 by columns: h(i, k) =g(i, N − 1 − k); 4. For k =0to N − 1 step 1, (a) pointwise multiply (k + 1)th column, {h(0,k),h(1,k),... ,h(N − 1,k)}, { ( ) } with complex sequence e −2π√ −1 i·s(k)+∆(k) i2 2 : i =0, 1,... ,N − 1 ; (b) convolve it with complex sequence { } e π√ −1∆(k)(t) 2 : t =0, 1,... ,N − 1 ; (c) pointwise { multiply the sequence with complex } sequence e −2π√ −1∆(k) l2 2 : l =0, 1,... ,N − 1 ; we get another column vector: { F (s(k)+l · ∆(k), N − 1 − k } ):l =0, 1,... ,N − 1 ; N End; 5. take transpose; 6. For l =0to N − 1 step 1, taper the (l + 1)th column by the raised cosine function, then take inverse 1-D DFT; End; B.3 Adjoint of the Fast Transform First of all, note that the previous fast algorithm is a linear transform, and so is every step in it. It is obvious that if we take the adjoint of each step, and do them in reverse order,

158 APPENDIX B. FAST EDGELET-LIKE TRANSFORM<br />

B.2.4<br />

Algorithm<br />

Here we give the algorithm to compute the fast edgelet-like transform. Note when the<br />

original <strong>image</strong> is N by N, our algorithm generates an N × 2N matrix. Recall that I(i, j)<br />

denotes the <strong>image</strong> value at pixel (i, j), 1 ≤ i, j ≤ N.<br />

Computing the discrete Radon transform <strong>via</strong> Fourier transform<br />

A. Compute the first half of the DRT matrix (size is N by N):<br />

1. For j =0to N − 1 step 1,<br />

take DFT of (j + 1)th column:<br />

[g(0,j),g(1,j),... ,g(N − 1,j)]<br />

= DFT N ([I(1,j+1),I(2,j+1),... ,I(N,j + 1)]);<br />

End;<br />

2. For k =0to N − 1 step 1,<br />

(a) pointwise multiply row<br />

{<br />

k +1,[g(k, 0),g(k, 1),... ,g(k, N − 1)],<br />

(<br />

)<br />

}<br />

with complex sequence e −2π√ −1 j·s(k)+∆(k) j2 2<br />

: j =0, 1,... ,N − 1 ;<br />

(b) convolve it with complex sequence<br />

{<br />

}<br />

e π√ −1∆(k)(t) 2 : t =0, 1,... ,N − 1 ;<br />

(c) pointwise { multiply the sequence with complex } sequence<br />

e −2π√ −1∆(k) l2 2 : l =0, 1,... ,N − 1 ;<br />

we get another row vector: { F ( k N ,s(k)+l · ∆(k)) : l =0, 1,... ,N − 1} ;<br />

End;<br />

3. For l =0to N − 1 step 1,<br />

taper the (l + 1)th column by the raised cosine, then take inverse 1-D<br />

DFT;<br />

End;<br />

B. Compute the second half of the DRT matrix (size is N by N):<br />

1. For i =0to N − 1 step 1,<br />

For j =0to N − 1 step 1,<br />

modulate: g(i, j) =I(i +1,j+1)e −2π√ −1 j N ;

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

Saved successfully!

Ooh no, something went wrong!