From 2011 to 2015

To inexperienced eye, some images appear as a collection of random noise. In some places this noise looks less random. These regions combined, create the visual sensation of shapes and objects. I devised a way to quantify this intuition and use it to detect useful information from very “noisy” images.

Below is an example of a synthetic image consisting of some horizontally shaped random speckles. The visually identifiable shapes (circles) are created by having these random speckles not being so random, along the visually identifiable contour.

Below is an example of an image where the visually identifiable shapes are created by the fact that the noise is somehow correlated along a certain dimension. On the right, is a zoomed-in detail.

A “simple” image with a series of circles. (Click to enlarge)

Zoomed in detail, were one can see that the contour of the circle is composed of quasi random noise. (Click to enlarge)

These kind of images can be found in different domains where the quantity of radiation is low and/or the wavelength of the radiation is close to the size of the imaged features.

Below, there is a sample from several domains. See the paper for more details on image sources. Above are the grayscale images and below each image is the “ground truth”, the features that needs detection.

Satellite trace in night sky

Liver capsule from B-mode US image

Metallic crystal boundary seen using SEM.

This section contains the source code and the images presented in “Detecting curvilinear features using structure tensors” paper.

There are three archives supporting the paper:

  • (1.4MB) includes the core methods, optimization software to run the experiments, visualization code that helped build the figures in the paper, some sample images and pieces of code that demonstrate how to apply the methods on images. In this archive we also included the raw data generated by experiments.
  • (12M) includes the four datasets (eco, metal1, metal2, astro) with corresponding ground truth. It also includes the synthetic image used for orientation tests and the code that generates the image.
  • (65M) includes the software, images and experiments on simulated images.

To run the software: Download and unpack the archives into a directory. Include the directory and all the subdirectories in MATLAB path. Start with /examples/ folder and continue with /experiments/. If you want to visualize the raw experiment results open /visualize/ folder. Read the description.txt in each folder and the comments of .m files for more details.

All the archives are necessary to reproduce the experimental results presented in the paper. If you want to apply the filters on some images download the archive and check the /core/ folder.

We developed the software using MATLAB R2011b (ver 7.13). We did not perform tests for other versions of MATLAB.

WARNING! As the paper went through reviewing process we added new features to the software. The zip archives contain a cleaned and brushed version of the latest iteration. Although I did some testing, no end to end run was performed so bugs might get into way while cleaning/formatting the code.

Please report any bugs or feedback to cristian dot vicas at cs dot utcluj dot ro

The software is released under MIT license.

Citation: C. Vicas and S. Nedevschi, “Detecting Curvilinear Features Using Structure Tensors”, Image Processing, IEEE Transactions on, Volume:24 , Issue: 11, pp: 3874 – 3887, 2015. Link to paper. Download draft