I want to write code in matlab to find a characteristic scale of an image patch.
I have an image patch X, I need to maximize function F(X,sigma)
so that sigma is the characteristic sigma.
For my experiments, F can be the laplacian of the image, sigma is the "power" of a gaussian filter on the image. F(x,sigma)
should return for each x (image patch) its response over scales of increasing sigmas (i.e. a discrete value for each X and sigma).
My questions are:
- The laplacian is obtained by convolving laplacian kernel with the image, where
does the sigma takes place ? (is it by smoothing the image before (the laplace) with
G(sigma)
?) - How can I define
F(X,sigma)
to return discrete value (X is nXm), ? i.e. what does this function do exactly.
Dima and Jean, Thank you for answers, the reason I'm asking this question is because I need to do something similar on 3D data (probably/maybe with some other normalized derivatives), and I first want to see how it works with 2D data (i.e. image). I understand now what I need to do for constructing the scale space, there is still one thing I'm not sure of and it is finding the local maxima over F. For each image (x,y) and σ - F is actually the derivative of the image. What does is mean local maxima of F over x,y and σ ? look for local maxima(s) at each scale ? there are several local maxima at each scale, are these local maxima correspond (in position) over all scales? if so, I understand that for each such position I need to find the σ that gives best maxima over all scales.. Is this is what you meant guys ? I'm sorry if I'm going to much into details, I just want to make sure I completely understand, THANK YOU !