Image elaboration and recognition involve some of the most difficult and resource consuming tasks; at studio ROSSI we studied two classes of these algorithms: segmentation differential operator (SOBEL) and texture detection matrix (co-occurrence).

Sobel operator can be used to calculate the gradient vector in every region of the image: boundaries are easily detected, because they are normal to the gradient vector.

We implemented Sobel operator in Labview (without IMAQ package); below, it is possible to see the algorithm applied to the image of a child. Contour is magnified but spurious artifacts are also created (due to objects in the background, see shoulder profile on the right) that can be reduced/avoided by applying more advanced techniques.

Co-occurrence matrix method can perform texture detection with no previous information about the texture type. This time-demanding algorithm (we also implemented in Labview) calculates probability density of the pixel color along a certain direction and within predetermined distance intervals.

A pure diagonal matrix can be obtained if little correlation is present in that direction (no texture); on the contrary, texture presence is signaled by spreading of matrix values (below).

Co-occurrence algorithm is used in industrial applications, like faulty metallic wires detection in tyres.


Designer, Coder

Date Project:


Sobel operator algorithm implementation (left, original image; right, contour detection)

co-occurrence algorithm implementation for texture detection (clic to see details)

Sobel code (clic to see details)