File Exchange

image thumbnail

optprop - a color properties toolbox

version 1.0 (1.69 MB) by

General routines for calculation and analysis of color related properties.

41 Downloads

Updated

No License

OPTPROP is a general toolbox for various color conversions and calculations. It is general in that in addition to handling various standard illuminants, observers and RGB color spaces, it can also handle custom specifications. It is a toolbox, in that it is not just a collection of routines. Instead, most routines have a common interface and can be combined seamlessly to form higher order routines.

The most novel feature of OPTPROP is its flexible argument passing mechanism, e.g. a conversion from XYZ to Lab can be carried out in any of the following ways:

Lab=xyz2lab(XYZ)
Lab=xyz2lab(X,Y,Z)
[L,a,b]=xyz2lab(XYZ)
[L,a,b]=xyz2lab(X,Y,Z)

X,Y,Z can have any dimensions as long as they are equal and XYZ can also have any dimensions as long as SIZE(XYZ,NDIMS(XYZ))==3. The non-colorimetric dimensions are retained and propagated to Lab and L,a,b respectively.

In addition to pure data, many conversion routines needs arguments like illuminant and observer. These arguments can be entered in each call, but can also be left out. In this case, the routines get these additional arguments from a set of default values that can be set on a session basis or as defaults for all subsequent sessions.

OPTPROP knows of many standard optical specifications and definitions, such as:
- illuminants: including
.....A, C, D50, D55, D65, D75, F1 through F12
- arbitrary blackbody and D illuminants
- observers, CIE 1931 2° and CIE 1964 10°
- RGB color spaces, such as sRGB, Adobe, Prophoto
- chromatic adaptation transforms, such as
.....scaled, vonKries and Bradford

When OPTPROP needs constants tabulated by ASTM, such as color weighting functions, it will use the pristine tabulated values whenever there is a table that fits the specified wavelength range for that illumination. If no suitable table exists, OPTPROP will interpolate the wanted table from the basic underlying tables and definitions. This makes it possible to use even non-standard illuminations such as e.g. D57.

All toplevel routines of OPTPROP are documented in an accompanying 110-page pdf manual.

The OPTPROP toolbox was written by Jerker Wågberg, More Research and DPC - Digital printing Center, as a part of the project "Interaction between ink and paper", a project sponsored by the Knowledge Foundation, Sweden.

Comments and Ratings (12)

KAE

KAE (view profile)

FYI if you are curious about the coefficients in i_roo2xyz, the reference is Stearns and Stearns (1988): An example of a method for correcting radiance data, Color Res. and App., 13, 257-259.

KAE

KAE (view profile)

Lots of useful code for color analysis and a nice tutorial to go along with it.

Jim Kasson

This is a great package. If anyone has done extensions for self-luminous media (more Luv stuff), I'd be interested, but it's pretty wonderful just the way it is.

TRANTOR

I found a sad mistake in function "i_lch2lab". With arrays as inputs there got error.

This code works much better than previous:

function Lab=i_lch2lab(Lch)

Lab=zeros(size(Lch));
Lab(:,1)=Lch(:,1);
Lab(:,2)=Lch(:,2).*cosd(Lch(:,3));
Lab(:,3)=Lch(:,2).*sind(Lch(:,3));

chenghua wei

wonderful work!

Ken Purchase

Walid

Walid (view profile)

is there a simple code to transform an RGB file into wavelengths and illuminations> the goal would be to do a spectral analysis of an image.
Thanks

Carlos Almeida

adi nugroho

Romdhane rim

Rayner Aloysius Tiam

John D'Errico

Fairly complete. A few spot checks gave values that I verified, though I did not exhaustively test these tools. I might have expected to see conversions to status A density. I was also wondering if I might see some tools for gamut mapping.

A few functions (viewgamut is one) expected input in forms that confused me. This is not a serious complaint, since with this extensive a variety of tools one would expect to spend at least some time learning to use them.

Overall - well done.

Updates

Forgot to include the manual. Sorry.

Version 2.1.3
Corrected roo2prop for single 'L' and 'b'
roo2brightness now works for single spectrum
wpt now also considers [] as dcwf
rosch documentation corrected
Typos corrected in manual

Messed up the description in the previous post, despite all my good intentions...

Cleaned out some mlint complaints.
Hopefully made Description look nicer.

MATLAB Release
MATLAB 7.3 (R2006b)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

optprop/colordata/

optprop/colordiffs/

optprop/colordiffs/private/

optprop/

optprop/conversions/

optprop/framework/

optprop/framework/private/

optprop/generate/

optprop/imports/

optprop/i_conversions/

optprop/i_conversions/private/

optprop/optgraphics/

optprop/optgraphics/private/

optprop/optutil/