There is nothing wrong with the results. Your support vector is essentially
[-3*sigma -2*sigma -1*sigma 0 1*sigma 2*sigma 3*sigma]
And if you collect every element of support and multiply by -1, -support.^2
[-9*sigma^2 -4*sigma^2 -1*sigma^2 0 -1*sigma^2 -4*sigma^2 -9*sigma^2]
So dividing by 2*sigma^2 will always lead to the same vector,
[-9/2 -4/2 -1/2 0 -1/2 -4/2 -9/2]
or
-4.5000 -2.0000 -0.5000 0 -0.5000 -2.0000 -4.5000
So why do you always get the same answer.
So, you need to check your algorithm to create a one-dimensional Gaussian filter.
EDIT:
The source code is fine: except I donβt understand why you made support using -3*sigma:sigma:3*sigma - you have to change it to support = -3:3 .
You can also use:
gaussFilter = fspecial('gaussian',[1 7],sigma)
EDIT: Check out the Amro solution for the full code and explanation of why support = -3*sigma:3*sigma and not support = -3*sigma:sigma:3*sigma
Jacob
source share