I'm new in StackExchange and I'd appreciate some help. I'm working in an algorithm for detecting "aguajes", a particular kind of palm. So far, I got good results using a texture feature extractor and other characteristics, but the main problem is that I can't difference between an "aguaje" and other palms (mainly pinnated palms) because the texture is very similar.


2.Pinnated Palm enter image description here

I see that the main difference in the second one is the presence of a Central Axis (also called Petiole or Rachis). The question is "How to detect it?". I mean, if I'm able to detect the presence of a Petiole, I'd be able to distinguish between this two types of palm. I think color is not an important issue because even when there's no color (gray image), we can discern where is located that Axis.

Thanks in advance.

  • $\begingroup$ Color is a fundamental attribute of objects which is heaavily utilised by many detection and recognition methods. But you may of course choose to ignore it, provided that gray-scale is adequate for your purposes. For the detection of the "central axis" what prevents you from detecting it, provided in the first place that you can detect the presence of the super-category of that plant palm. $\endgroup$ – Fat32 Feb 14 '16 at 2:13
  • $\begingroup$ Well, I choose to ignore it because the color of that "central axis" varies depending on the age of the palm (it could be green or yellow). In second place, my search is based on finding those areas which contain an specific texture, and both palms have similar textures at the end of the branches. So now, I'm trying to discard the false positives by detecting the most remarkable feature of the second palm, which -I think- is the presence of a "central axis" or Petiole $\endgroup$ – Giorgio Luigi Morales Luna Feb 14 '16 at 4:20
  • $\begingroup$ Your clue lies in the orientatation of pinnates: Circular or Semi-Linear (elliptical-oval). So you should find a method of discriminating between circular arrangement an a elliptical arrangement. $\endgroup$ – Fat32 Feb 14 '16 at 12:47
  • $\begingroup$ Exactly, that's the idea, I think texture doesn't help, any advice? $\endgroup$ – Giorgio Luigi Morales Luna Feb 14 '16 at 13:33
  • $\begingroup$ A solution could be this: detect the lines with a suitable detector, and compute the angles in between. If the number of parallel lines (angle < threshold) is greater than that of non pararllel's then it is an elliptical arrangement. Otherwise it is a circular one in which no line in principle is parallel to the neighbouring line. Of course be realistic to account for measurement errors and feature anomalities, use proper thresholds to discriminate the boundary between parallel and non paralle lines. Also use local metrics and global metrics in combinartions during decisions. $\endgroup$ – Fat32 Feb 14 '16 at 15:24

In your provided image the central axis is straight and have the same color throughout, therefore a Hough operator can detect this.

| improve this answer | |
  • $\begingroup$ That's the first thing I thought, but there was two problems: The first is that the segmentation is not quite uniform in some cases (I used a Naive Bayes classifier) and the second problem is that the color of the central axis is not always the same. For example, I just added a new image of the second type of palm. You can see the texture is still similar, but the central axis is now darker. $\endgroup$ – Giorgio Luigi Morales Luna Feb 14 '16 at 13:43

Take a look at this stackexchange post: Vein extraction from this image

There, I talk about a curvi-linear structure detector, from Steger. Moreover, an extension is given here for Gaussian profiles:

Carsten Steger, Unbiased extraction of lines with parabolic and Gaussian profiles, Computer Vision and Image Understanding, Volume 117, Issue 2, February 2013, Pages 97-112, ISSN 1077-3142,

This algorithm also works well for your images. Here is what I obtain, when I target centerline of the large branch of pinnated palm:

pinnated palm processed for edges

The algorithm can be tuned to detect other structures too, such as:

pinnated palm processed for edges 2

Also I advise you to increase your image quality for better view of the structures. If you cannot do this, you might benefit from fine grained capabilities of convolutional neural networks to actually extract the features for you.

| improve this answer | |
  • $\begingroup$ I read the same post and I applied it with similar results, but then I realised that the central axis has similar length to another branches of aguaje (first image), so actually it wasn't a good descriptor. Finally I decided to apply a lines detector (Probabilistic Hough with other filters) which search for a high number of lines with a determined length. I mean, if I have found a zone which probably is aguaje, I count how many large straight lines that zone has. $\endgroup$ – Giorgio Luigi Morales Luna May 17 '16 at 1:59
  • $\begingroup$ Evidently, if that number is high, it corresponds with an aguaje palm, if not could be another kind of palm. I know is very simple but it works well. It's not pretty accurate, but it reduces a lot the false positives $\endgroup$ – Giorgio Luigi Morales Luna May 17 '16 at 2:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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