Input: integer array G[I][J][M], // Feature description of the whole image.

integer vector W(k)[M]; // Etalon feature pattern: combination of features

// representing the k-th segment.

Output: integer matrix E(k)[I][J]; // Degree of similarity between feature patterns

// of texture windows and etalon feature pattern.

E(k) = 0; // Zeroing the matrix E(k).

for (i = 0; i < I; i++) // Cycle through X coordinates of image.

| for (j = 0; j < J; j++) // Cycle through Y coordinates of image.

| | for (m = 0; m < M; m++) // Cycle through all M features.

| | | { // Finding max and min between G[i][j][m]

| | | | // and W(k)[m].

| | | | if (G[i][j][m] > = W(k)[m])

| | | | | {

| | | | | | max = G[i][j][m]; // Calculation of the maximum value.

| | | | | | min = W(k)[m]; // Calculation of the minimum value.

| | | | | }

| | | | else

| | | | | {

| | | | | | min = G[i][j][m]; // Calculation of the minimum value.

| | | | | | max = W(k)[m]; // Calculation of the maximum value.

| | | | | }

| | | | E(k)[i][j] + = min / max; // Calculating similarity of m-th feature.

| | | }