MATLAB Examples

# Example of dop2Dbox Applied to Illumination Correction

(C) 2013 Matthew harker and Paul O'Leary Institute for Automation University of Leoben A-8700 Leoben Austria

email: office@harkeroleary.org

This program demonstrates the application of discrete orthogonal polynomials to illumination correction in an image.

This tool requires the discrete orthogonal toolbox: dopBox:

```http://www.mathworks.com/matlabcentral/fileexchange/41250
```

## Contents

```close all; clear; % ```

## Load the Test Data

This is an image of a metallurgical sample taken with a microscope

```load metallurgy; % fig1 = figure; imagesc( D ); colormap(gray); axis image; % %\caption{Example metallurgical image, note the inhomogeneous illumination} % ``` ## Generate the Basis Functions for the X and Y Directions

\cellName{genBases}

Determine the size of the image

```[ny, nx] = size( D ); % % Define the degree of the basis functions for the x and y directions % degreeX = 2; degreeY = 2; % % The function call dop uses the number of basis functions not degree % noBfsX = degreeX + 1; noBfsY = degreeY + 1; % % Generate the discrete orthogonal basis functions % Bx = dop( nx, noBfsX ); By = dop( ny, noBfsY ); % ```

## Compute the 2D Polynomial Spectrum

\cellName{computeSpec}

Only a few basis functions have been used. Consequently the 2D polynomial is of low degree. The fit will model the global intensity of the image.

```Sp = By' * D * Bx; % % generate scale vectors for the x and y directions % xScale = 0:degreeX; yScale = 0:degreeY; % fig2 = figure; imagesc( xScale, yScale, Sp ); xlabel('Degree in \$\$x\$\$'); ylabel('Degree in \$\$y\$\$'); colorbar; % % \caption{2D polynomial spectrum} % ``` ## Compute the Illumination Approximation

\cellName{approx}

Reconstructing the 2D data set corresponds to the global illumination approximation.

```Z = By * Sp * Bx'; % fig3 = figure; imagesc( Z ); colorbar; colormap(gray); % % \caption{2D Polynomial approximation to the image. The low degree of % approximation ensures that the details in the image are not modelled. % In this manner the approximation corresponds to the global illumination} % ``` ## Correct the Image Intensity

\cellName{correct}

```C = D - Z; % fig4 = figure; imagesc( C ); colorbar; colormap(gray); % % \caption{Metallurgical image corrected for the non-uniform illumination.} ``` 