Identify transformation that turns images to the Dark Side

Working on a new method to detect linear objects in images, I have developed a transformation that turns the images into a spooky tangled network. My theory is that the transformed image shows the main paths of spatial coherence.

Is this kind of analysis already done in other field of image processing or with another application?

This is the result with a satellite image of a forest area:

dark-side transform of forest area

I have experience with image operations to identify features in images, like edges or straight lines, but I have never seen anything like this.

The method is based on several wavelet-transforms around each pixel, considering lines in all directions and selecting the angle with maximum convolution value. This operation results in two numbers per pixel: the maximum convolution and its corresponding angle, similar to the magnitude and phase of the Fourier analysis. In the above example, the convolution map is shown with its extreme values scaled to a gray map.

A college suggested to compare the transformation with a Sobel filter:

dark-side transform vs Sobel filter of forest area

Sobel operator approximates the spatial derivatives of the image in each pixel. Using the classical 3x3 kernel, a first order approximation of the gradient vector is obtained that is typically used to highlight edges. My filter uses an arbitrary kernel size (32x32 in the above example) but does not approximate the spatial derivatives of any order. The image is convoluted against line kernels that can be interpreted as local Hough transforms. Selecting the kernel with maximum convolution value, the image is locally approximated as a line in the corresponding direction.

This hypothesis answers part of my question but the precise meaning of the paths present in the filtered image is still open. The paths seem to connect certain regions of the image, maybe spatially coherent or maybe just a visual artifact from the superposition of the local Hough transforms.

1 Like

Hello BORJA,
ImageJ/Fiji has a plugin named ‘Ridge Detector’ which will give information on the ridges in your transform plus lengths, connections and locations. You can find it in the plugins website if it is not already in the process menu of your toolbar.
May I ask what is it you are looking for in this fashion? I’m just curious.

I think that this might have been done (from your description I take that you are using an accumulator, and perhaps kernels with different orientations?).
You can get very similar patterns with this technique:
Chaudhuri et al. Detection of blood vessels in retinal images using two-dimensional matched filters. IEEE Trans Medical Imaging 1989, 8(3): 263-269.


I would be a bit careful over-interpreting the results. To me, it seems to generate patterns where there are linear features, but also where there seem to be none. The image above was generated with your colour version, converted to 32bit.


Thank you for the reference and for taking the time to process my example image. The results are really similar.

The original purpose of this technique was to identify smooth edges in retinal images. In mi case, I wanted to identify blurred lines so I used circular kernels containing a line with different orientations. In my example these 60 kernels of 32x32 pixels size were used:


In the same way as in the cited work, I use an accumulator to test all the kernels and retain the angle with the maximum convolution value.

In case someone is interested, the cited article is available on the following link:

1 Like

Tank you! I will give the ridge-detector plugin a try. I am looking for curved blurred lines so it looks promising.