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 - ICSPC 2007

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 - ICSPC 2007 (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

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

Steerable Filters generated with the Hypercomplex Dual-Tree Wavelet Transform - ICSPC 2007

  • 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)