-
Notifications
You must be signed in to change notification settings - Fork 0
Convolution
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;
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.
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]