Signal Processing Stack Exchange is a question and answer site for practitioners of the art and science of signal, image and video processing. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to implement edge detectors for creating a feature vector for archeological signs. Which are best features, algorithms to retrieve? That could be loaded in a Support vector machine for classification.

If there are in the image only signs with a uniform background it's better converting an image in a binary image and calculate convexHull, solidity, eccentricity, elongation of the archeological signs. Then, what i do? I insert these data in a vector and put every vector of every image in a Support Vector Machine for training?

How can i measure "distance", similarities among images?

share|improve this question
What do you mean archaeological signs? – Mohammad Jan 14 '13 at 15:38

There is a difference between edge detection and feature detection, which is usually a corner detection (e.g. Harris corner detector), blob detection or even region detection (e.g. MSER).

Once the features are detected in your image, they are described in some way. For point features (corners), there are many different descriptors.

I think the simplest yet powerful one is simply taking a patch around the detected feature location. The patch can be quite large and should be rotated in the direction of dominant orientation (for rotational invariance).

The feature vector can consist of just horizontal and vertical image gradients. For a 64 by 64 pixel patch, this would lead to 4096 dimensional vector. This is quite large, but can be effectively reduced by PCA (Principal Component Analysis). This is quite slow but provides good quality and robustness of the descriptor comparable to SIFT or SURF descriptors.

The SURF descriptor is based on Haar wavelet and is also quite easy to implement - it can produce smaller descriptor and hence PCA is not necessary.

You can take a look on this paper comparing various feature descriptors.

share|improve this answer
ok ,thank you, in meanwhile i found this:…, they talk about, convexHull, solidity, eccentricity..., i can use also these kind of features to create my feature vector or i'm wrong? – postgres Jan 14 '13 at 16:49
@postgres: Convex hull, eccentricity (...) are usually used for binary images, (typically for connected components). If you can find a way to binarize the signs you want to detect in a repeatable way and if the binarization doesn't remove too much information (hard to tell without any sample images), then features like these are often very robust and very simple to calculate. – nikie Jan 14 '13 at 19:48
like this: – postgres Jan 14 '13 at 20:43

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.