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.