I am trying to extract ridges from an image, calculated using the eigenvalues of the Hessian matrix (see answer in Best way of segmenting veins in leaves?). In this image I have zeroed out the negative eigenvalues.
Visually I can see the regions I want, but how would I be able to sensibly extract them automatically? If I LogNorm()
the colorbar it is not so clear
Initially I thought if the noise in the image can be estimated, I can mask the image accordingly, but the only estimate to the noise I can find is its standard deviation (assuming Gaussian noise) in skimage.restoration.estimate_sigma
and not its mean.
Masking via threshold is also possible, but do the magnitudes of the eigenvalues have physical meaning?
I'm new to image processing so any help would be greatly appreciated. I have attached the data for my image also (https://drive.google.com/file/d/1Wdvqtv4rUmLtSNiq-p0M5BwSKxUoW76T/view?usp=sharing).
Thanks!
dev_ridge.py
is an example script to show howextract_ridges
work, rather than part ofssqueezepy
. Also includes a bunch of test signals. $\endgroup$