Co-occurrence matrix
From Wikipedia, the free encyclopedia
A co-occurrence matrix, also referred to as a co-occurrence distribution, is defined over an image to be the distribution of co-occurring values at a given offset. Mathematically, a co-occurrence matrix C is defined over an n x m image I, parameterized by an offset (Δx,Δy), as:
The 'value' of the image originally referred to the grayscale value of the specified pixel. The value could be anything, from a binary on/off value to 32-bit color and beyond. Note that 32-bit color will yield a 232x232 co-occurrence matrix!
It is also possible to define the matrix across two different images. Really any matrix or pair of matrices can be used to generate a co-occurrence matrix, though their main applicability has been in the measuring of texture in images, so the typical definition, as above, assumes that the matrix is in fact an image.
Note that the (Δx,Δy) parameterization makes the co-occurrence matrix sensitive to rotation. We choose one offset vector, so a rotation of the image not equal to 180 degrees will result in a different co-occurrence distribution for the same (rotated) image. This is rarely desirable in the applications co-occurrence matrices are used in, so the co-occurrence matrix is often formed using a set of offsets sweeping through 180 degrees (i.e. 0, 45, 90, and 135 degrees) at the same distance to achieve a degree of rotational invariance.
Contents |
[edit] Aliases
Co-occurrence matrics have been referred to as:
-
- GLCM (Gray-Level Co-occurrence Matrices)
- spatial dependence matrix
[edit] Scripts
A Matlab function for calculating a co-occurrence matrix across two images with an offset of 0:
function M=getCoMatrix(M1,M2) GREY_LEVEL_NUM=2; ROW_NUM=size(M1); ROW_NUM=ROW_NUM(1); M=zeros(GREY_LEVEL_NUM:GREY_LEVEL_NUM); for i=1:ROW_NUM, for j=1:ROW_NUM, X=M1(i, j)+1; Y=M2(i, j)+1; M(X, Y)=M(X, Y)+1; end end
[edit] Application to Image Processing
Whether considering the intensity or grayscale values of the image or various dimensions of color, the co-occurrence matrix can measure the texture of the image. Because co-occurrence matrices are typically large and sparse, various metrics of the matrix are often taken to get a more useful set of features. Features generated using this technique are usually called Haralick features, after R M Haralick, attributed to his paper Textural features for image classification (1973).
Texture measures like the co-occurrence matrix, wavelet transforms, and model fitting have found application in medical image analysis in particular.
[edit] References
- Robert M Haralick, K Shanmugam, Its'hak Dinstein (1973). "Textural Features for Image Classification". IEEE Transactions on Systems, Man, and Cybernetics SMC-3 (6): 610-621.