Skip to content
samirahmed edited this page Oct 6, 2012 · 1 revision

Intuition

An easy way to 'differentiate' or gauge change in a series is to convolute with a kernel of [ -1 , 0, 1]

Why does this work well? 1 Dimensional Convolution with a kernel of [-1 , 0 , 1] convolutes each unit in a series into the difference of its neighboring measurements. Therefore representing the change in the value from before to after. if three consecutive pixels have the same value, the center pixel will have a convoluted value of 0;

Application to Luma Time Series

By gauging this change we can identify Key Features along an edge.

Given a luma time series, we get color information about an edge, however to find features in the time series, we want to find places where the color changes by a large amount.

After convolution we create an identify features which will be useful to create a chamfer map of the edge, so that it can easily be compared to other edges for similarity.

Implementation

The Convolution in 1D is implemented in a straight forward manner


Convolution( xx , kernel , indicies )

   
   for i = 0..xx.size
      yy[i] = 0
      for j = 0..indicies.length
         index = i - indicies[jj];
         if index is in bounds of xx
            yy[i] += xx[index] + kernel[jj]
       
Clone this wiki locally