Evaluate the color accuracy of a camera

The camera object is a structure with slots for optics (oi) image sensor (sensor), and image processing pipeline (vci). We frequently use the camera structure to evaluate whole system properties.

Here, the accuracy is measured for a Macbeth Color Checker under D65. Running this script requires some user-interaction.

See also: cameraColorAccuracy, macbethCompareIdeal, s_metricsAcutance, macbethDrawRects, imageIncreaseImageRGBSize

Copyright ImagEval Consultants, LLC, 2012.

Contents

ieInit

Initialize a camera objects.

% The camera object contains an optics structure, a sensor, and a default
% processing pipeline.  You can change the parameters of these structure.
camera = cameraCreate;
camera  = cameraSet(camera,'sensor auto exposure',1);
Camera from default oi,sensor and ip

Color accuracy test

% Measure the CIELAB delta E values for rendering a Macbeth Color
% Checker under a D65 illuminant.
%
% Run the color accuracy analysis.  This creates an MCC scene,
% passes it all the way to the processed image, and then
% calculates the error plot.
[cAccuracy, camera]     = cameraColorAccuracy(camera);
Converting rgb to XYZ values from an sRGB display

Make visual comparisons of the rendered and target MCC

ip = cameraGet(camera,'ip'); ipWindow(ip);
macbethCompareIdeal(cameraGet(camera,'ip'));

% Print out the $\Delta E$ values
dE = reshape(cAccuracy.deltaE,4,6);
fprintf('Here are the Delta E values for each patch\n')
fprintf('-----\n')
dE
fprintf('-----\n')
Here are the Delta E values for each patch
-----

dE =

   15.7934   13.0174    7.5141   18.3329    9.5009   11.0882
   12.7311   10.9270    4.8382   24.2180   11.4167    5.4054
   23.3913   15.3771   18.1610    8.9606    5.4906   10.3654
    6.3348    4.3305    5.3851    5.1703    5.3624    3.4929

-----

Or make an image of the delta E values

%{
    pSize = 25;
    deimage = imageIncreaseImageRGBSize(dE,pSize);
    vcNewGraphWin; imagesc(deimage); colormap(gray(64))
    colorbar; axis image; axis off
    title('\DeltaE values')
%}

END