SlideShare a Scribd company logo
1 of 30
Download to read offline
2007 ICSPC International Conference on Signal
                                                   Processing and Communications

                                  TA-P1: Image and Video Processing 6

     STEERABLE FILTERS GENERATED WITH THE HYPERCOMPLEX DUAL-TREE
                          WAVELET TRANSFORM

                                 J. Wedekind, B. Amavasai, K. Duttona

                                     Tuesday, November 27th 2007

                              Microsystems and Machine Vision Laboratory
                                 Materials Engineering Research Institute
                                        Sheffield Hallam University
                                                  Sheffield
                                              United Kingdom



a
    This project was supported by the Nanorobotics EPSRC Basic Technology grant GR/S85696/01
motivation
               feature extraction

Micron                   Nanorobotics




         1. keypoint selection
            • rotation
            • translation
            • blur/scale
         2. feature descriptor
         3. RANSAC,BHT
state of the art
                                   keypoint selection

Roberts cross                         Kanade-Lucas-Tomasi




Harris-Stephens                 SIFT (Lowe), MOPS (Brown et al.)




           next generation feature extractor?
¨
                                   Thomas Bulow

Hypercomplex Spectral Signal Representations for Image
               Processing and Analysis
Ivan Selesnick

The design of approximate Hilbert transform pairs of
                  wavelet bases
Nick Kingsbury


Image processing with complex wavelets
Ivan Selesnick, Richard G. Baraniuk, Nick Kingsbury


The dual-tree complex wavelet transform
1-D basis wavelets (Selesnick)



                              wavelets for K = K = 5 and L = 4
                                                           wavelet                                       wavelet
                                        0.6                                           1.5
                                        0.5                                             1
                                        0.4                                           0.5
                                        0.3
                                                                                        0
                                        0.2
                                        0.1                                           -0.5
                                          0                                            -1
                                       -0.1                                           -1.5
             recursion                        0   2   4        6       8   10 12 14          0   2   4   6       8   10 12 14 16
H0 (z)   2     2         H0 (z)

H1 (z)   2     2         H1 (z)                       H0 , G0                                        H1 , G 1
             recursion
G0 (z)   2     2         G0 (z)
                                                           wavelet                                       wavelet
                                        1.4                                           0.6
G1 (z)   2     2         G1 (z)         1.2
                                                                                      0.4
                                          1
                                        0.8                                           0.2
                                        0.6
                                                                                        0
                                        0.4
                                        0.2                                           -0.2
                                          0
                                                                                      -0.4
                                       -0.2
                                       -0.4                                           -0.6
                                              0   2   4    6       8   10 12 14 16           0   2   4       6       8   10 12 14



                                                      H0 , G0                                        H1 , G 1
dual-tree complex wavelet transform (Kingsbury)


                                                                 2-d
              1-d
                                                                           H0 (z2 )   2
                                                                                          z2
               H0 (z)       2                                              H0 (z2 )   2
                                                                                          z2
               G0 (z)       2                                              G0 (z2 )   2
                                                                                          z2
                                                                           G0 (z2 )   2
                                                                                          z2
               H1 (z)       2
                                                      H0 (z1 )    2        H0 (z2 )   2
                                                                      z1                  z2
               G1 (z)       2                         G0 (z1 )    2        H0 (z2 )   2
                                                                      z1                  z2
                                                      H0 (z1 )    2        G0 (z2 )   2
                                                                      z1                  z2
                                                      G0 (z1 )    2        G0 (z2 )   2
                                                                      z1                  z2
(hyper)complex representation                         H1 (z1 )    2
                                                                      z1
                                                                           H1 (z2 )   2
                                                                                          z2
                                                      G1 (z1 )    2        H1 (z2 )   2
                                                                      z1                  z2
                        1                             H1 (z1 )    2        G1 (z2 )   2
                                                                      z1                  z2
                        i                             G1 (z1 )    2        G1 (z2 )   2
                                                                      z1                  z2
                                +                                          H1 (z2 )   2
                                                                                          z2
     1                  j                                                  H1 (z2 )   2
          +                                                                               z2
     i                  k                                                  G1 (z2 )   2
                                                                                          z2
                                                                           G1 (z2 )   2
                                                                                          z2
commutative hypercomplex algebra




multiplication table of H
      1    i    j    k

  1   1    i     j    k
  i   i   −1    k    −j
  j   j    k   −1    −i
  k   k   −j   −i     1
test image




require ’selesnick’
require ’kingsbury’
img=MultiArray.load_grey8("circle.png")
hwt=HWT.new(MultiArray::SFLOAT)
himg=hwt.decompose(hwt.prepare(img),3)
img2=hwt.finalise(hwt.compose(himg,3))
diff=img2-img
diff.range
# -0.00522037548944354..0.0319054499268532
diff.normalise.display
Math::sqrt((diff**2).sum/diff.size)
# 0.00274400669319458
hypercomplex components


                    1              i              j              k
                    A = H, B = H   A = G, B = H   A = H, B = G   A = G, B = G



A0 (z1 ) B0 (z2 )



A1 (z1 ) B0 (z2 )



A0 (z1 ) B1 (z2 )



A1 (z1 ) B1 (z2 )
wavelet tree
linear combinations of 1-D basis wavelets


                                    animating ∆x




     
1
    i
                                                                                      
                                                                   2 π ∆x i/2
     
                                                                                    0 
 
 
     
       
                                                                 
                                                                                        
                                                                                         
            V (z) =
                                                                                    
                          Ha (z) R(va )+
0   0                                                          
                                                                   
                                                                                        
                                                                                         
                                                                                         
                                                                 
                                                                                        
                                                                                               
                                              v                                2 π ∆x i     v0 
                                                                                        
                                                                        0
                                                                   
                                                                                        
                                           v = =e                                          ·   , v ∈ C2
                                           0                                            
0   0             a∈{0,1}                  
                                                                                              
                                                                                                
 
     
                                             
                                               
                                              v                                               
                                                                                                
                                                                                               v 
 
 
 
 
1
       
       
       
       
      i                    Ga (z) I(va )      1                                                1

                                   animations require Javascript
2-D separable basis wavelets




                                  
     1
     
         0
           
              i
               
                   0
                     
                        j
                         
                             0
                               
                                  k
                                   
                                       0
                                         
                                         
     
     
          
           
              
               
                    
                     
                        
                         
                              
                               
                                  
                                   
                                        
                                         
                                         
     
     0                            
          0   0   0   0   0   0   0
                                  
     0
     
         1
           
              0
               
                   i
                     
                        0
                         
                             j
                               
                                  0
                                   
                                       k
                                         
                                         
     
     
          
           
              
               
                    
                     
                        
                         
                              
                               
                                  
                                   
                                        
                                         
                                         
     
     0                            
          0   0   0   0   0   0   0
                                  
     0
     
         0
           
              0
               
                   0
                     
                        0
                         
                             0
                               
                                  0
                                   
                                       0
                                         
                                         
     
     
          
           
              
               
                    
                     
                        
                         
                              
                               
                                  
                                   
                                        
                                         
                                         
     
     1                            
          0   i   0   j   0   k   0
                                  
     0
     
         0
           
              0
               
                   0
                     
                        0
                         
                             0
                               
                                  0
                                   
                                       0
                                         
                                         
     
     
          
           
              
               
                    
                     
                        
                         
                              
                               
                                  
                                   
                                        
                                         
                                         
     
     0                            
          1   0   i   0   j   0   k
linear combinations of 2-D basis wavelets



                                                       animation




                                                                                                       
                                                                          2 π ∆x     j/2       0
V (z1 , z2 ) =
                                                                                                       
                                                                                                        
                             Ha (z1 ) Hb (z2 ) R(va,b )+
                                                                          
                                                                          
                                                                          
                                                                          
                                                                                 2                     
                                                                                                        
                                                                                                        
                                                                                                        
                                                                                                        
                                                                          
                                                                                                       
                                                                                                        
                                                                                            2 π ∆x2
                                                                                                       
                 a,b∈{0,1}                                                
                                                                          
                                                                                0                      j
                                                                                                        
                                                               V =e
                                                                                                       
                                                                                                            · V·
                         Ga (z1 ) Hb (z2 ) I(va,b )+
                                                                                                      
                                                                          2 π ∆x i/2          0
                             Ha (z1 ) Gb (z2 ) J(va,b )+
                                                                                                      
                                                                                                       
                                                                          
                                                                          
                                                                          
                                                                          
                                                                                 1                    
                                                                                                       
                                                                                                       
                                                                                                       
                                                                                                       
                                                                          
                                                                                                      
                                                                                                       
                                                                                            2 π ∆x1
                                                                                                      
                                                                                0                     i
                                                                                                      
                         Ga (z1 ) Gb (z2 ) K(va,b )
                                                                          
                                                                                                           , V ∈ C2×2
                                                                                                      
                                                                        e
                                                   animations require Javascript
coping with rotations (Kingsbury) (Bharath,Ng)




Rotation-invariant local feature matching   A steerable complex wavelet construction
         with complex wavelets               and its application to image denoising
wavelet editor
blob-like pattern




                                                
                        1 0
                             + (i − j) sin(α) 1 0
                        
                           
                                              
                                                  
                                                   
         (1 − k) cos(α) 
                        
                        
                           
                            
                            
                        0 0
                                               
                                               
                                                  
                                                   
                                               0 0
                                                  
                                                   




animations require Javascript
edge pattern




                                 v1,0 v1,1
                                      v0,1 ρ


                                                     
                   0 1
                          + (i + j) cos(α − ρ) 0     1
                                                
(1 + k) cos(α + ρ)                                     +
                   
                   
                        
                                               
                                                       
                                                        
                   
                        
                                               
                                                       
                                                        
                   0 0                       
                                                0      
                                                       0
                                                    
                   0 0
                         + (i + j) sin(α − ρ) 0     0
                                               
(1 + k) sin(α + ρ)                                    +
                   
                   
                       
                                              
                                                      
                                                       
                   
                       
                        
                                              
                                               
                                                      
                                                       
                                                       
                   1 0                       1     0
                                               
                 0 0 1
1                      + (1 − j) cos(α) 0 0
                 
                     
                                           
                                                 
                                                  
  (1 − i) sin(α) 
                 
                     
                                           
                                            
                                            0 1
                                                 
                                                  
2                
                 0 1 2                        
                                                  

 animations require Javascript
cross pattern




                                                    
                                                0 0
                         (1 + i + j + k) cos(α)     +
                                                
                                                
                                                    
                                                     
                                                    
                                                0 1
                                                    
                                                     
                                                    
                                                0 0
                         (1 + i − j − k) sin(α)     +
                                                
                                                
                                                    
                                                     
                                                    
                                                1 0
                                                    
                                                     
                                                      
                                                  0 1
                         (−1 + i − j + k) sin(α) 
                                                  
                                                  
                                                      
                                                       
                                                       
                                                      
                                                  0 0
                                                      
                                                       


         cos(α) H1 +sin(α) H2 , where H1 , H2 ∈ HCA2×2

animations require Javascript
conclusion




• improved understanding of high frequency pattern

• enable use of hypercomplex wavelets beyond edge detection

• several fully steerable patterns (translation, rotation)

• hypercomplex matrices for representing local structure

                                         animations require Javascript
future work




• complete basis of steerable patterns? rotation around any point?

• understand interaction between neighbouring coefficients

• understand interaction of different layers of wavelet pyramid (Kingsbury)

• choose keypoints, descriptors

                                      animations require Javascript
Hornetseye
                         GPL (free and open source software)




         http://rubyforge.org/projects/hornetseye/
        http://sourceforge.net/projects/hornetseye/
http://vision.eng.shu.ac.uk/mediawiki/index.php/Hornetseye
       http://raa.ruby-lang.org/project/hornetseye/
     http://www.wedesoft.demon.co.uk/hornetseye-api/
filter design (Selesnick)


   perfect reconstruction
                      recursion
  H0 (z)         2       2        H0 (z)   1
                                           2    H0 (z)X(z) + H0 (−z)X(−z) H0 (z)+
  H1 (z)         2       2        H1 (z)
                                           1
                                           2    H1 (z)X(z) + H1 (−z)X(−z) H1 (z) =(∗) X(z)
                      recursion                                    ⇔
  G0 (z)         2       2        G0 (z)
                                                   H0 (z) H0 (−z) + H1 (z) H1 (−z) = 0                 (1)
  G1 (z)         2       2        G1 (z)
                                                      H0 (z) H0 (z) + H1 (z) H1 (z) = 2                (2)
    Thiran filter (τ = 0.5)
                             n−1 τ−L+1+k
d(n) =     L−1
            n    (−1)n       k=0 τ+1+k                             ⇐
    vanishing moments                                    H1 (z) = H0 (−z)
                                                                                 (1)
   K=1                 1 −1                              H1 (z) = −H0 (−z)
   K=2                1 −2 1                   H0 (z) = Q(z) (1 + z−1 )K D(z)
                                                                                            (2)· · ·
   K=3               1 −3 3 −1                 H0 (z) = Q(z) (1 +   z−1 )K   D(z−1 ) z1−L
   K =4 1 −4 6 −4 1                                                    c .... s 1 X(z) + X(−z)
                                           (∗) [↑ 2] [↓ 2] x(n)                 2
     ...                 ...
filter design (Selesnick)


   perfect reconstruction
                      recursion
  H0 (z)         2       2        H0 (z)   1
                                           2   G0 (z)X(z) + G0 (−z)X(−z) G0 (z)+
  H1 (z)         2       2        H1 (z)
                                           1
                                           2   G1 (z)X(z) + G1 (−z)X(−z) G1 (z) =(∗) X(z)
                      recursion                                   ⇔
  G0 (z)         2       2        G0 (z)
                                                  G0 (z) G0 (−z) + G1 (z) G1 (−z) = 0            (3)
  G1 (z)         2       2        G1 (z)
                                                     G0 (z) G0 (z) + G1 (z) G1 (z) = 2           (4)
    Thiran filter (τ = 0.5)
                             n−1 τ−L+1+k
d(n) =     L−1
            n    (−1)n       k=0 τ+1+k                           ⇐
    vanishing moments                                  G1 (z) = G0 (−z)
                                                                              (3)
   K=1                 1 −1                            G1 (z) = −G0 (−z)
   K=2                1 −2 1                G0 (z) = Q(z) (1 + z−1 )K D(z−1 ) z1−L
                                                                                      (4)· · ·
   K=3               1 −3 3 −1              G0 (z) = Q(z) (1 +    z−1 )K   D(z)
   K =4 1 −4 6 −4 1                                                  c .... s 1 X(z) + X(−z)
                                           (∗) [↑ 2] [↓ 2] x(n)               2
     ...                 ...
filter design (Selesnick)




                                                (2)· · ·
                                         
H0 (z) H0 (z) + H1 (z) H1 (z) = 2        
                                         
                                         
                                         
                                         
                                         
H1 (z) = H0 (−z)
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                          1 = H0 (z) H0 (z) = (1 + z )
                                                                     −1 K+K
                                                                            D(z) D(z−1 ) z1−L Q(z) Q(z)
                                         
H1 (z) = −H0 (−z)
                                         
                                         
                                         
                                         
H0 (z) = Q(z) (1 + z−1 )K D(z)
                                         
                                         
                                                                           S (z)                R(z)
                                         
                                         
                                         
                                         
                                         
H0 (z) = Q(z) (1 + z−1 )K D(z−1 ) z1−L
                                         
                                         
                                         
filter design (Selesnick)




                                                (4)· · ·
                                         
G0 (z) G0 (z) + G1 (z) G1 (z) = 2        
                                         
                                         
                                         
                                         
                                         
G1 (z) = G0 (−z)
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                          1 = G0 (z) G0 (z) = (1 + z )
                                                                     −1 K+K
                                                                            D(z) D(z−1 ) z1−L Q(z) Q(z)
                                         
G1 (z) = −G0 (−z)
                                         
                                         
                                         
                                         
G0 (z) = Q(z) (1 + z−1 )K D(z−1 ) z1−L
                                         
                                         
                                                                           S (z)                R(z)
                                         
                                         
                                         
                                         
                                         
G0 (z) = Q(z) (1 + z−1 )K D(z)
                                         
                                         
                                         
filter design (Selesnick)




                                (2,4)· · ·
                                                                   .
                                                             r  .
                                                          
                       s
                       N
                      
                               0     ···               
                                                        
                                                        
                                                            1  .
                                                            
                                                                   
                                                                    
                      
                      
                                                       
                                                        
                                                           
                                                            
                                                                   
                                                                    
                       sN−2
                      
                      
                              sN−1   sN       0   · · ·
                                                        
                                                        
                                                            r2  0
                                                            
                                                            
                                                            
                                                                    
                                                                    
                                                                    
                                                                    
                       .
                      
                      
                                 .     .       .     . 
                                                        
                                                            .   
                                                            
                                                             .   
                                                            
S (z) Q(z) Q(z) = 1 ⇔  .        .     .       .     .      .  = 1
                                                                    
                       .
                      
                      
                                .     .       .     . 
                                                        
                                                        
                                                        
                                                            
                                                            
                                                            
                                                                    
                                                                    
                                                                    
                                                                       R(z)
                      
                      
                                                       
                                                        
                                                           
                                                            
                                                                   
                                                                    
                                                                    
         R(z)         
                       ···                                rN−1  0
                                                            
                                0      s1     s2    s3 
                      
                                                       
                                                           
                                                                   
                                                                    
                                                                    
                      
                                                       
                                                           
                                                                   
                                                                   .
                                                                    
                                                             r  .
                      
                                                       
                                                           
                                                            
                                                                     .
                                                                 
                                     ···      0    s1        N
                                                                    
spectral factorisation (Laguerre)

                                                      spectral factorisation
            Laguerre
                                                 R(z) symmetric, real-valued
Input: Polynomial p(x)                            Im                    Im
Output: zero crossing o ∈ C of p
x → 0.0 + 0.0 i; c → 100;
while c ≥ 0 do                                                         Re                                   Re
   if |p(x)| sufficiently small then
        return o = x;                          tuples                        quadruples
   end
   g = p (x)/p(x);
   h = g2 − p (x)/p(x);                 Im               Im                   Im              Im

   if |g + d| > |g − d| then                    Re                Re                 Re                Re
        a = n/(g + d);                tuples         quadruples             tuples        quadruples

   else
                                              Q(z)                     Q(z)
        a = n/(g − d);
                                         H0 (z) = Q(z) (1 + z−1 )K D(z)
   end
    x → x − a; c → c − 1;                H0 (z) = Q(z) (1 + z−1 )K D(z−1 ) z1−L
end                                      H1 (z) = H0 (−z), H1 (z) = −H0 (−z)
                                         (2,4)

More Related Content

What's hot

adc converter basics
adc converter basicsadc converter basics
adc converter basicshacker1500
 
Simple information transmission by different natural languages
Simple information transmission by different natural languagesSimple information transmission by different natural languages
Simple information transmission by different natural languagesyaevents
 
Talk data sciencemeetup
Talk data sciencemeetupTalk data sciencemeetup
Talk data sciencemeetupdatasciencenl
 
Models of Synaptic Transmission (2)
Models of Synaptic Transmission (2)Models of Synaptic Transmission (2)
Models of Synaptic Transmission (2)SSA KPI
 
Characteristics of the kinase mutant TPK2 in bioreactors
Characteristics of the kinase mutant TPK2 in bioreactorsCharacteristics of the kinase mutant TPK2 in bioreactors
Characteristics of the kinase mutant TPK2 in bioreactors★ Beatriz Barrera Garmón
 
Multitexture_TE_V3.pdf
Multitexture_TE_V3.pdfMultitexture_TE_V3.pdf
Multitexture_TE_V3.pdfgrssieee
 
Review solar prediction iea 07-06
Review solar prediction iea 07-06Review solar prediction iea 07-06
Review solar prediction iea 07-06IrSOLaV Pomares
 

What's hot (7)

adc converter basics
adc converter basicsadc converter basics
adc converter basics
 
Simple information transmission by different natural languages
Simple information transmission by different natural languagesSimple information transmission by different natural languages
Simple information transmission by different natural languages
 
Talk data sciencemeetup
Talk data sciencemeetupTalk data sciencemeetup
Talk data sciencemeetup
 
Models of Synaptic Transmission (2)
Models of Synaptic Transmission (2)Models of Synaptic Transmission (2)
Models of Synaptic Transmission (2)
 
Characteristics of the kinase mutant TPK2 in bioreactors
Characteristics of the kinase mutant TPK2 in bioreactorsCharacteristics of the kinase mutant TPK2 in bioreactors
Characteristics of the kinase mutant TPK2 in bioreactors
 
Multitexture_TE_V3.pdf
Multitexture_TE_V3.pdfMultitexture_TE_V3.pdf
Multitexture_TE_V3.pdf
 
Review solar prediction iea 07-06
Review solar prediction iea 07-06Review solar prediction iea 07-06
Review solar prediction iea 07-06
 

Similar to Steerable filters generated with the hypercomplex dual-tree wavelet transform

Signal Processing Course : Wavelets
Signal Processing Course : WaveletsSignal Processing Course : Wavelets
Signal Processing Course : WaveletsGabriel Peyré
 
Brief survey on Three-Dimensional Displays
Brief survey on Three-Dimensional DisplaysBrief survey on Three-Dimensional Displays
Brief survey on Three-Dimensional DisplaysTaufiq Widjanarko
 
Why we don’t know how many colors there are
Why we don’t know how many colors there areWhy we don’t know how many colors there are
Why we don’t know how many colors there areJan Morovic
 
Hmm tutorial
Hmm tutorialHmm tutorial
Hmm tutorialPiyorot
 
Shape contexts
Shape contextsShape contexts
Shape contextshuebesao
 
Natalia Restrepo-Coupe_Remotely-sensed photosynthetic phenology and ecosystem...
Natalia Restrepo-Coupe_Remotely-sensed photosynthetic phenology and ecosystem...Natalia Restrepo-Coupe_Remotely-sensed photosynthetic phenology and ecosystem...
Natalia Restrepo-Coupe_Remotely-sensed photosynthetic phenology and ecosystem...TERN Australia
 
NumXL 1.55 LYNX release notes
NumXL 1.55 LYNX release notesNumXL 1.55 LYNX release notes
NumXL 1.55 LYNX release notesSpider Financial
 
Model-based analysis using generative embedding
Model-based analysis using generative embeddingModel-based analysis using generative embedding
Model-based analysis using generative embeddingkhbrodersen
 
The Origin of Diversity - Thinking with Chaotic Walk
The Origin of Diversity - Thinking with Chaotic WalkThe Origin of Diversity - Thinking with Chaotic Walk
The Origin of Diversity - Thinking with Chaotic WalkTakashi Iba
 
16.40 o10 d wiltshire
16.40 o10 d wiltshire16.40 o10 d wiltshire
16.40 o10 d wiltshireNZIP
 
Amth250 octave matlab some solutions (3)
Amth250 octave matlab some solutions (3)Amth250 octave matlab some solutions (3)
Amth250 octave matlab some solutions (3)asghar123456
 
Novel processingtechniques applicationsofadi
Novel processingtechniques applicationsofadiNovel processingtechniques applicationsofadi
Novel processingtechniques applicationsofadiSAIFoundry
 
Cosmological Perturbations and Numerical Simulations
Cosmological Perturbations and Numerical SimulationsCosmological Perturbations and Numerical Simulations
Cosmological Perturbations and Numerical SimulationsIan Huston
 
Modern features-part-1-detectors
Modern features-part-1-detectorsModern features-part-1-detectors
Modern features-part-1-detectorszukun
 

Similar to Steerable filters generated with the hypercomplex dual-tree wavelet transform (16)

Signal Processing Course : Wavelets
Signal Processing Course : WaveletsSignal Processing Course : Wavelets
Signal Processing Course : Wavelets
 
Brief survey on Three-Dimensional Displays
Brief survey on Three-Dimensional DisplaysBrief survey on Three-Dimensional Displays
Brief survey on Three-Dimensional Displays
 
Why we don’t know how many colors there are
Why we don’t know how many colors there areWhy we don’t know how many colors there are
Why we don’t know how many colors there are
 
Hmm tutorial
Hmm tutorialHmm tutorial
Hmm tutorial
 
Shape contexts
Shape contextsShape contexts
Shape contexts
 
Natalia Restrepo-Coupe_Remotely-sensed photosynthetic phenology and ecosystem...
Natalia Restrepo-Coupe_Remotely-sensed photosynthetic phenology and ecosystem...Natalia Restrepo-Coupe_Remotely-sensed photosynthetic phenology and ecosystem...
Natalia Restrepo-Coupe_Remotely-sensed photosynthetic phenology and ecosystem...
 
NumXL 1.55 LYNX release notes
NumXL 1.55 LYNX release notesNumXL 1.55 LYNX release notes
NumXL 1.55 LYNX release notes
 
Model-based analysis using generative embedding
Model-based analysis using generative embeddingModel-based analysis using generative embedding
Model-based analysis using generative embedding
 
The Origin of Diversity - Thinking with Chaotic Walk
The Origin of Diversity - Thinking with Chaotic WalkThe Origin of Diversity - Thinking with Chaotic Walk
The Origin of Diversity - Thinking with Chaotic Walk
 
16.40 o10 d wiltshire
16.40 o10 d wiltshire16.40 o10 d wiltshire
16.40 o10 d wiltshire
 
Amth250 octave matlab some solutions (3)
Amth250 octave matlab some solutions (3)Amth250 octave matlab some solutions (3)
Amth250 octave matlab some solutions (3)
 
Novel processingtechniques applicationsofadi
Novel processingtechniques applicationsofadiNovel processingtechniques applicationsofadi
Novel processingtechniques applicationsofadi
 
Gregoire H&N
Gregoire H&NGregoire H&N
Gregoire H&N
 
Cosmological Perturbations and Numerical Simulations
Cosmological Perturbations and Numerical SimulationsCosmological Perturbations and Numerical Simulations
Cosmological Perturbations and Numerical Simulations
 
Modern features-part-1-detectors
Modern features-part-1-detectorsModern features-part-1-detectors
Modern features-part-1-detectors
 
2011 11 Roma (SIDO) - MARA FOLLOW-UP
2011 11 Roma (SIDO) - MARA FOLLOW-UP2011 11 Roma (SIDO) - MARA FOLLOW-UP
2011 11 Roma (SIDO) - MARA FOLLOW-UP
 

More from Jan Wedekind

The SOLID Principles for Software Design
The SOLID Principles for Software DesignThe SOLID Principles for Software Design
The SOLID Principles for Software DesignJan Wedekind
 
Fundamentals of Computing
Fundamentals of ComputingFundamentals of Computing
Fundamentals of ComputingJan Wedekind
 
Using Generic Image Processing Operations to Detect a Calibration Grid
Using Generic Image Processing Operations to Detect a Calibration GridUsing Generic Image Processing Operations to Detect a Calibration Grid
Using Generic Image Processing Operations to Detect a Calibration GridJan Wedekind
 
Efficient implementations of machine vision algorithms using a dynamically ty...
Efficient implementations of machine vision algorithms using a dynamically ty...Efficient implementations of machine vision algorithms using a dynamically ty...
Efficient implementations of machine vision algorithms using a dynamically ty...Jan Wedekind
 
The MiCRoN Project
The MiCRoN ProjectThe MiCRoN Project
The MiCRoN ProjectJan Wedekind
 
Computer vision for microscopes
Computer vision for microscopesComputer vision for microscopes
Computer vision for microscopesJan Wedekind
 
Focus set based reconstruction of micro-objects
Focus set based reconstruction of micro-objectsFocus set based reconstruction of micro-objects
Focus set based reconstruction of micro-objectsJan Wedekind
 
Machine vision and device integration with the Ruby programming language (2008)
Machine vision and device integration with the Ruby programming language (2008)Machine vision and device integration with the Ruby programming language (2008)
Machine vision and device integration with the Ruby programming language (2008)Jan Wedekind
 
Reconstruction (of micro-objects) based on focus-sets using blind deconvoluti...
Reconstruction (of micro-objects) based on focus-sets using blind deconvoluti...Reconstruction (of micro-objects) based on focus-sets using blind deconvoluti...
Reconstruction (of micro-objects) based on focus-sets using blind deconvoluti...Jan Wedekind
 
Fokus-serien basierte Rekonstruktion von Mikroobjekten (2002)
Fokus-serien basierte Rekonstruktion von Mikroobjekten (2002)Fokus-serien basierte Rekonstruktion von Mikroobjekten (2002)
Fokus-serien basierte Rekonstruktion von Mikroobjekten (2002)Jan Wedekind
 
Play Squash with Ruby, OpenGL, and a Wiimote - ShRUG Feb 2011
Play Squash with Ruby, OpenGL, and a Wiimote - ShRUG Feb 2011Play Squash with Ruby, OpenGL, and a Wiimote - ShRUG Feb 2011
Play Squash with Ruby, OpenGL, and a Wiimote - ShRUG Feb 2011Jan Wedekind
 
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...Jan Wedekind
 
Machine Vision made easy with Ruby - ShRUG June 2010
Machine Vision made easy with Ruby - ShRUG June 2010Machine Vision made easy with Ruby - ShRUG June 2010
Machine Vision made easy with Ruby - ShRUG June 2010Jan Wedekind
 
Computer Vision using Ruby and libJIT - RubyConf 2009
Computer Vision using Ruby and libJIT - RubyConf 2009Computer Vision using Ruby and libJIT - RubyConf 2009
Computer Vision using Ruby and libJIT - RubyConf 2009Jan Wedekind
 
Real-time Computer Vision With Ruby - OSCON 2008
Real-time Computer Vision With Ruby - OSCON 2008Real-time Computer Vision With Ruby - OSCON 2008
Real-time Computer Vision With Ruby - OSCON 2008Jan Wedekind
 
Object Recognition and Real-Time Tracking in Microscope Imaging - IMVIP 2006
Object Recognition and Real-Time Tracking in Microscope Imaging - IMVIP 2006Object Recognition and Real-Time Tracking in Microscope Imaging - IMVIP 2006
Object Recognition and Real-Time Tracking in Microscope Imaging - IMVIP 2006Jan Wedekind
 
Ruby & Machine Vision - Talk at Sheffield Hallam University Feb 2009
Ruby & Machine Vision - Talk at Sheffield Hallam University Feb 2009Ruby & Machine Vision - Talk at Sheffield Hallam University Feb 2009
Ruby & Machine Vision - Talk at Sheffield Hallam University Feb 2009Jan Wedekind
 

More from Jan Wedekind (17)

The SOLID Principles for Software Design
The SOLID Principles for Software DesignThe SOLID Principles for Software Design
The SOLID Principles for Software Design
 
Fundamentals of Computing
Fundamentals of ComputingFundamentals of Computing
Fundamentals of Computing
 
Using Generic Image Processing Operations to Detect a Calibration Grid
Using Generic Image Processing Operations to Detect a Calibration GridUsing Generic Image Processing Operations to Detect a Calibration Grid
Using Generic Image Processing Operations to Detect a Calibration Grid
 
Efficient implementations of machine vision algorithms using a dynamically ty...
Efficient implementations of machine vision algorithms using a dynamically ty...Efficient implementations of machine vision algorithms using a dynamically ty...
Efficient implementations of machine vision algorithms using a dynamically ty...
 
The MiCRoN Project
The MiCRoN ProjectThe MiCRoN Project
The MiCRoN Project
 
Computer vision for microscopes
Computer vision for microscopesComputer vision for microscopes
Computer vision for microscopes
 
Focus set based reconstruction of micro-objects
Focus set based reconstruction of micro-objectsFocus set based reconstruction of micro-objects
Focus set based reconstruction of micro-objects
 
Machine vision and device integration with the Ruby programming language (2008)
Machine vision and device integration with the Ruby programming language (2008)Machine vision and device integration with the Ruby programming language (2008)
Machine vision and device integration with the Ruby programming language (2008)
 
Reconstruction (of micro-objects) based on focus-sets using blind deconvoluti...
Reconstruction (of micro-objects) based on focus-sets using blind deconvoluti...Reconstruction (of micro-objects) based on focus-sets using blind deconvoluti...
Reconstruction (of micro-objects) based on focus-sets using blind deconvoluti...
 
Fokus-serien basierte Rekonstruktion von Mikroobjekten (2002)
Fokus-serien basierte Rekonstruktion von Mikroobjekten (2002)Fokus-serien basierte Rekonstruktion von Mikroobjekten (2002)
Fokus-serien basierte Rekonstruktion von Mikroobjekten (2002)
 
Play Squash with Ruby, OpenGL, and a Wiimote - ShRUG Feb 2011
Play Squash with Ruby, OpenGL, and a Wiimote - ShRUG Feb 2011Play Squash with Ruby, OpenGL, and a Wiimote - ShRUG Feb 2011
Play Squash with Ruby, OpenGL, and a Wiimote - ShRUG Feb 2011
 
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
Digital Imaging with Free Software - Talk at Sheffield Astronomical Society J...
 
Machine Vision made easy with Ruby - ShRUG June 2010
Machine Vision made easy with Ruby - ShRUG June 2010Machine Vision made easy with Ruby - ShRUG June 2010
Machine Vision made easy with Ruby - ShRUG June 2010
 
Computer Vision using Ruby and libJIT - RubyConf 2009
Computer Vision using Ruby and libJIT - RubyConf 2009Computer Vision using Ruby and libJIT - RubyConf 2009
Computer Vision using Ruby and libJIT - RubyConf 2009
 
Real-time Computer Vision With Ruby - OSCON 2008
Real-time Computer Vision With Ruby - OSCON 2008Real-time Computer Vision With Ruby - OSCON 2008
Real-time Computer Vision With Ruby - OSCON 2008
 
Object Recognition and Real-Time Tracking in Microscope Imaging - IMVIP 2006
Object Recognition and Real-Time Tracking in Microscope Imaging - IMVIP 2006Object Recognition and Real-Time Tracking in Microscope Imaging - IMVIP 2006
Object Recognition and Real-Time Tracking in Microscope Imaging - IMVIP 2006
 
Ruby & Machine Vision - Talk at Sheffield Hallam University Feb 2009
Ruby & Machine Vision - Talk at Sheffield Hallam University Feb 2009Ruby & Machine Vision - Talk at Sheffield Hallam University Feb 2009
Ruby & Machine Vision - Talk at Sheffield Hallam University Feb 2009
 

Recently uploaded

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Recently uploaded (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Steerable filters generated with the hypercomplex dual-tree wavelet transform

  • 1. 2007 ICSPC International Conference on Signal Processing and Communications TA-P1: Image and Video Processing 6 STEERABLE FILTERS GENERATED WITH THE HYPERCOMPLEX DUAL-TREE WAVELET TRANSFORM J. Wedekind, B. Amavasai, K. Duttona Tuesday, November 27th 2007 Microsystems and Machine Vision Laboratory Materials Engineering Research Institute Sheffield Hallam University Sheffield United Kingdom a This project was supported by the Nanorobotics EPSRC Basic Technology grant GR/S85696/01
  • 2. motivation feature extraction Micron Nanorobotics 1. keypoint selection • rotation • translation • blur/scale 2. feature descriptor 3. RANSAC,BHT
  • 3. state of the art keypoint selection Roberts cross Kanade-Lucas-Tomasi Harris-Stephens SIFT (Lowe), MOPS (Brown et al.) next generation feature extractor?
  • 4. ¨ Thomas Bulow Hypercomplex Spectral Signal Representations for Image Processing and Analysis
  • 5. Ivan Selesnick The design of approximate Hilbert transform pairs of wavelet bases
  • 6. Nick Kingsbury Image processing with complex wavelets
  • 7. Ivan Selesnick, Richard G. Baraniuk, Nick Kingsbury The dual-tree complex wavelet transform
  • 8. 1-D basis wavelets (Selesnick) wavelets for K = K = 5 and L = 4 wavelet wavelet 0.6 1.5 0.5 1 0.4 0.5 0.3 0 0.2 0.1 -0.5 0 -1 -0.1 -1.5 recursion 0 2 4 6 8 10 12 14 0 2 4 6 8 10 12 14 16 H0 (z) 2 2 H0 (z) H1 (z) 2 2 H1 (z) H0 , G0 H1 , G 1 recursion G0 (z) 2 2 G0 (z) wavelet wavelet 1.4 0.6 G1 (z) 2 2 G1 (z) 1.2 0.4 1 0.8 0.2 0.6 0 0.4 0.2 -0.2 0 -0.4 -0.2 -0.4 -0.6 0 2 4 6 8 10 12 14 16 0 2 4 6 8 10 12 14 H0 , G0 H1 , G 1
  • 9. dual-tree complex wavelet transform (Kingsbury) 2-d 1-d H0 (z2 ) 2 z2 H0 (z) 2 H0 (z2 ) 2 z2 G0 (z) 2 G0 (z2 ) 2 z2 G0 (z2 ) 2 z2 H1 (z) 2 H0 (z1 ) 2 H0 (z2 ) 2 z1 z2 G1 (z) 2 G0 (z1 ) 2 H0 (z2 ) 2 z1 z2 H0 (z1 ) 2 G0 (z2 ) 2 z1 z2 G0 (z1 ) 2 G0 (z2 ) 2 z1 z2 (hyper)complex representation H1 (z1 ) 2 z1 H1 (z2 ) 2 z2 G1 (z1 ) 2 H1 (z2 ) 2 z1 z2 1 H1 (z1 ) 2 G1 (z2 ) 2 z1 z2 i G1 (z1 ) 2 G1 (z2 ) 2 z1 z2 + H1 (z2 ) 2 z2 1 j H1 (z2 ) 2 + z2 i k G1 (z2 ) 2 z2 G1 (z2 ) 2 z2
  • 10. commutative hypercomplex algebra multiplication table of H 1 i j k 1 1 i j k i i −1 k −j j j k −1 −i k k −j −i 1
  • 11. test image require ’selesnick’ require ’kingsbury’ img=MultiArray.load_grey8("circle.png") hwt=HWT.new(MultiArray::SFLOAT) himg=hwt.decompose(hwt.prepare(img),3) img2=hwt.finalise(hwt.compose(himg,3)) diff=img2-img diff.range # -0.00522037548944354..0.0319054499268532 diff.normalise.display Math::sqrt((diff**2).sum/diff.size) # 0.00274400669319458
  • 12. hypercomplex components 1 i j k A = H, B = H A = G, B = H A = H, B = G A = G, B = G A0 (z1 ) B0 (z2 ) A1 (z1 ) B0 (z2 ) A0 (z1 ) B1 (z2 ) A1 (z1 ) B1 (z2 )
  • 14. linear combinations of 1-D basis wavelets animating ∆x     1   i     2 π ∆x i/2     0                  V (z) =       Ha (z) R(va )+ 0 0               v  2 π ∆x i v0    0    v = =e ·   , v ∈ C2      0     0 0 a∈{0,1}                     v      v          1         i Ga (z) I(va ) 1 1 animations require Javascript
  • 15. 2-D separable basis wavelets         1   0   i   0   j   0   k   0                            0        0 0 0 0 0 0 0         0   1   0   i   0   j   0   k                            0        0 0 0 0 0 0 0         0   0   0   0   0   0   0   0                            1        0 i 0 j 0 k 0         0   0   0   0   0   0   0   0                            0        1 0 i 0 j 0 k
  • 16. linear combinations of 2-D basis wavelets animation   2 π ∆x j/2 0 V (z1 , z2 ) =    Ha (z1 ) Hb (z2 ) R(va,b )+      2          2 π ∆x2   a,b∈{0,1}   0 j  V =e   · V· Ga (z1 ) Hb (z2 ) I(va,b )+   2 π ∆x i/2 0 Ha (z1 ) Gb (z2 ) J(va,b )+         1          2 π ∆x1   0 i   Ga (z1 ) Gb (z2 ) K(va,b )  , V ∈ C2×2   e animations require Javascript
  • 17. coping with rotations (Kingsbury) (Bharath,Ng) Rotation-invariant local feature matching A steerable complex wavelet construction with complex wavelets and its application to image denoising
  • 19. blob-like pattern     1 0  + (i − j) sin(α) 1 0         (1 − k) cos(α)        0 0      0 0    animations require Javascript
  • 20. edge pattern v1,0 v1,1 v0,1 ρ     0 1  + (i + j) cos(α − ρ) 0 1  (1 + k) cos(α + ρ)  +                  0 0   0  0     0 0  + (i + j) sin(α − ρ) 0 0  (1 + k) sin(α + ρ)  +                     1 0 1 0     0 0 1 1  + (1 − j) cos(α) 0 0         (1 − i) sin(α)        0 1    2  0 1 2    animations require Javascript
  • 21. cross pattern   0 0 (1 + i + j + k) cos(α)  +        0 1      0 0 (1 + i − j − k) sin(α)  +        1 0      0 1 (−1 + i − j + k) sin(α)          0 0    cos(α) H1 +sin(α) H2 , where H1 , H2 ∈ HCA2×2 animations require Javascript
  • 22. conclusion • improved understanding of high frequency pattern • enable use of hypercomplex wavelets beyond edge detection • several fully steerable patterns (translation, rotation) • hypercomplex matrices for representing local structure animations require Javascript
  • 23. future work • complete basis of steerable patterns? rotation around any point? • understand interaction between neighbouring coefficients • understand interaction of different layers of wavelet pyramid (Kingsbury) • choose keypoints, descriptors animations require Javascript
  • 24. Hornetseye GPL (free and open source software) http://rubyforge.org/projects/hornetseye/ http://sourceforge.net/projects/hornetseye/ http://vision.eng.shu.ac.uk/mediawiki/index.php/Hornetseye http://raa.ruby-lang.org/project/hornetseye/ http://www.wedesoft.demon.co.uk/hornetseye-api/
  • 25. filter design (Selesnick) perfect reconstruction recursion H0 (z) 2 2 H0 (z) 1 2 H0 (z)X(z) + H0 (−z)X(−z) H0 (z)+ H1 (z) 2 2 H1 (z) 1 2 H1 (z)X(z) + H1 (−z)X(−z) H1 (z) =(∗) X(z) recursion ⇔ G0 (z) 2 2 G0 (z) H0 (z) H0 (−z) + H1 (z) H1 (−z) = 0 (1) G1 (z) 2 2 G1 (z) H0 (z) H0 (z) + H1 (z) H1 (z) = 2 (2) Thiran filter (τ = 0.5) n−1 τ−L+1+k d(n) = L−1 n (−1)n k=0 τ+1+k ⇐ vanishing moments H1 (z) = H0 (−z) (1) K=1 1 −1 H1 (z) = −H0 (−z) K=2 1 −2 1 H0 (z) = Q(z) (1 + z−1 )K D(z) (2)· · · K=3 1 −3 3 −1 H0 (z) = Q(z) (1 + z−1 )K D(z−1 ) z1−L K =4 1 −4 6 −4 1 c .... s 1 X(z) + X(−z) (∗) [↑ 2] [↓ 2] x(n) 2 ... ...
  • 26. filter design (Selesnick) perfect reconstruction recursion H0 (z) 2 2 H0 (z) 1 2 G0 (z)X(z) + G0 (−z)X(−z) G0 (z)+ H1 (z) 2 2 H1 (z) 1 2 G1 (z)X(z) + G1 (−z)X(−z) G1 (z) =(∗) X(z) recursion ⇔ G0 (z) 2 2 G0 (z) G0 (z) G0 (−z) + G1 (z) G1 (−z) = 0 (3) G1 (z) 2 2 G1 (z) G0 (z) G0 (z) + G1 (z) G1 (z) = 2 (4) Thiran filter (τ = 0.5) n−1 τ−L+1+k d(n) = L−1 n (−1)n k=0 τ+1+k ⇐ vanishing moments G1 (z) = G0 (−z) (3) K=1 1 −1 G1 (z) = −G0 (−z) K=2 1 −2 1 G0 (z) = Q(z) (1 + z−1 )K D(z−1 ) z1−L (4)· · · K=3 1 −3 3 −1 G0 (z) = Q(z) (1 + z−1 )K D(z) K =4 1 −4 6 −4 1 c .... s 1 X(z) + X(−z) (∗) [↑ 2] [↓ 2] x(n) 2 ... ...
  • 27. filter design (Selesnick) (2)· · ·  H0 (z) H0 (z) + H1 (z) H1 (z) = 2       H1 (z) = H0 (−z)         1 = H0 (z) H0 (z) = (1 + z ) −1 K+K D(z) D(z−1 ) z1−L Q(z) Q(z)  H1 (z) = −H0 (−z)     H0 (z) = Q(z) (1 + z−1 )K D(z)    S (z) R(z)      H0 (z) = Q(z) (1 + z−1 )K D(z−1 ) z1−L   
  • 28. filter design (Selesnick) (4)· · ·  G0 (z) G0 (z) + G1 (z) G1 (z) = 2       G1 (z) = G0 (−z)         1 = G0 (z) G0 (z) = (1 + z ) −1 K+K D(z) D(z−1 ) z1−L Q(z) Q(z)  G1 (z) = −G0 (−z)     G0 (z) = Q(z) (1 + z−1 )K D(z−1 ) z1−L    S (z) R(z)      G0 (z) = Q(z) (1 + z−1 )K D(z)   
  • 29. filter design (Selesnick) (2,4)· · ·  .  r  .     s  N   0 ···      1  .                         sN−2    sN−1 sN 0 · · ·     r2  0                 .   . . . .     .      .     S (z) Q(z) Q(z) = 1 ⇔  . . . . .   .  = 1     .    . . . .                    R(z)                   R(z)   ···  rN−1  0  0 s1 s2 s3                           .     r  .       .        ··· 0 s1  N   
  • 30. spectral factorisation (Laguerre) spectral factorisation Laguerre R(z) symmetric, real-valued Input: Polynomial p(x) Im Im Output: zero crossing o ∈ C of p x → 0.0 + 0.0 i; c → 100; while c ≥ 0 do Re Re if |p(x)| sufficiently small then return o = x; tuples quadruples end g = p (x)/p(x); h = g2 − p (x)/p(x); Im Im Im Im if |g + d| > |g − d| then Re Re Re Re a = n/(g + d); tuples quadruples tuples quadruples else Q(z) Q(z) a = n/(g − d); H0 (z) = Q(z) (1 + z−1 )K D(z) end x → x − a; c → c − 1; H0 (z) = Q(z) (1 + z−1 )K D(z−1 ) z1−L end H1 (z) = H0 (−z), H1 (z) = −H0 (−z) (2,4)