How can I properly extract the features of a ferning pattern using image processing?

Using feature extraction, what can I do to distinguish the ferning pattern in a positive fern test? Attached is a sample image from https://commons.wikimedia.org/wiki/File:Positive_Fern_Test_.jpg .

4 Comments

You mean to say you want to detect whether or not there is a fern pattern? Do you have images without the fern? Also depends on what other patterns are there that shouldn't result in positive? Training a neural network might be easier.
@cr Yes :) So far I have three sets of images: with ferns, without the ferns (clear), and images with vaginal discharge (marks on the sample that are not ferns and either overlap with the ferns or are just in the sample). We are actually trying to train a neural network (and maybe do feature extraction from the pre-trained network), but we'd also want to try manual feature extraction. I have tried edge-detection methods and even tried using branch intersections as a descriptor (idk if that's the right term) but the ferns are most of the time disconnected (when zoomed in) and sometimes present as round shapes that form lines/branches instead of actual lines, making parameter measurement/description hard. Do you think we should just proceed with training a neural network followed by feature extraction (if possible)? Thanks a lot!
@Image Analyst I cannot upload the exact images we currently have but I found images on the internet that are similar to them, which are in this folder [Similar Images]. I wasn't clear with my first comment but our goal is actually just two classes (positive and negative ferning). For images with vaginal discharge, if the samples have no fern patterns at all, they are just considered negative.

Sign in to comment.

 Accepted Answer

Hi @Maria Gabriella Andrea, to get started with extracting features from a ferning pattern, these steps might be helpful:
  • If the image is in color, first convert it to grayscale so you are only working with intensity values.
  • Focus on the main area of the image, which is typically a circular region in microscope images. Create a mask to isolate this main area and exclude the background.
  • Enhance the image contrast to make the ferning pattern stand out more clearly against the background.
  • Convert the enhanced image to black and white to highlight the ferning structures.
  • Use an automatic thresholding method, such as Otsu's method, to separate the pattern from the background.
  • Remove any small spots or noise that are not part of the actual pattern. Fill in any small holes or gaps within the pattern to improve its shape.
  • Finally, thin the pattern down to its skeleton to clearly reveal the branching structure.
  • Use region property tools to measure features like the area covered by the pattern, the length of its branches, and its overall shape. You can also examine texture features such as contrast and smoothness to further describe the pattern’s appearance.
Hope this helps!

1 Comment

Thank you for these steps and we will definitely try it. If extracting the features manually don't seem to work, is it possible for us to pre-train a neural network then use that for feature extraction? We don't have such extensive knowledge on this and we are still learning while doing this :)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!