I turn to this forum for advice with the following problem. If you could please shed some light on any aspect of this question I'd be very grateful.
I'm trying to use an SVM to segment a grayscale image of a puncture in polymer (original res. 1280x1024, can't post, no reputation :)
Now, I know this isn't probably the most conventional way to approach this problem, but still I'd like to try whether it is possible in any way.
My work so far:
I think of the segmentation problem as follows: classify a given pixel based on its value and neighborhood pixel values, i.e. determine whether pixel belongs to the foreground (puncture) or background (anything other than puncture).
I labeled this image using GIMP (for the SVM training purposes, i.e. marked the location of the puncture, i.e. each pixel is given a class (1 - puncture, -1 - background)) and tried to extract some simple features:
- central pixel value + neighborhood pixel values with varying size of neighborhood
- central pixel value + differences between central pixel value and neighborhood pixel values
- central pixel value + 2D FFT spectrum of the neighborhood (amplitude and phase components)
- standard deviation of the neighborhood
Note that I varied neighborhood size from 3x3 = 9 dimensions to 11x11 = 121 dimensions. I couldn't go higher (I use MATLAB for this, i'm getting out of memory errors). None of these were found sufficiently discriminatory. (I used PCA to inspect, calculated between-class distance of centroids and their respective class covariance matrices).
Soo, at last, to my question:
Could you think of any useful features to use for this task? (I was thinking some measures of homogeneity of the neighborhood would be helpful, since inside of the puncture is more or less uniform in brightness, but haven't found any. Also maybe some texture features would be helpful, but who knows.)