Hi, I'm wondering what type of threshold would work well for distinguishing features that are very small (small in the xy sense) in comparison with the full spread, if that makes sense. The graythresh() function in Matlab that uses the Otsu method doesn't work too well for my data. Otsu is a clustering method where I think the # of pixels should be similar in each class, which is not the case for me so when I employ it I get a threshold that is way too small and falls well within a lot of the background noise that remains even after filtering.
We really need more information to be really helpful. What kind of features are you trying to extract? What, exactly, are you trying to do?
I wouldn't really consider Otsu's method to be feature extraction, it just tries to seperate an image into foreground and background by pushing a grayscale image to a binary (only black & white image).
For finding actual "features" in computer vision you'd be better served by something like Harris Interest Points - but this is a guess since I'm not sure what your final goal is.
You might want to have a look at methods for unimodal thresholding (see this paper by Rosin for a method that works ok-ish).
However, straight thresholding of noisy images may not be the best approach. There are a number of better methods that have been developed for finding small features in very noisy images. Here's a link to a paper that discusses a variety of methods.
Jonas - The second link is similar to what I'm looking for, thanks! It looks like they still do thresholding though, but I'm not familiar with the method they use. How is it different from global thresholding of the already-filtered image? (I apologize for adding this as an answer but I just signed up with an OpenID and it doesn't allow me to comment as it is different from the nonuser ID I used in my OP.)