I have several images of tags with shapes on them (circle, rectangle and space). After processing the images using mid-blur and Gabor filters, I can eliminate most of the effect that variable lighting has on the images, and they look like this:

I tried to train SVM using HOG, LDA, PCA and the pixels themselves, but I can hardly get 40-60% accuracy. I really want to use information in image forms. I was recommended Fourier descriptors, and although I found a good tutorial on applying Fourier transforms to images using NumPy and OpenCV, I'm not sure how to start extracting Fourier descriptors from an image, and then identify those that are unique to different shapes. Does anyone know how to do this, or can recommend an alternative method to get functions from these images that will allow SVM to distinguish between them?
source share