Friday, January 06, 2012

Creating spectrograms in Linux using a ColorMunki

The software that comes with the ColorMunki Photo is windows-only and is only about calibrating displays and printers.  I wanted to get spectrograms out of it so that we can measure lighting and transmissive materials -- a chart of wavelength vs. intensity.  BTW, check the argyll docs before you buy a ColorMunki -- apparently several of the models are the same hardware priced differently.

Install the argyll ubuntu package, then use the spotread command to take readings.  The -S flag will display a graph after each reading.  Other flags let you set which mode to use -- it has its own light for lighting a surface and measuring the reflected color, or you can have it read ambient light through a diffuser, or do spot readings without the light.  I used -e to take spot readings.

It also prints out a list of intensities at regular wavelength intervals, so that should be easy to import into a spreadsheet for making your own charts.

Here's an example of a chart that spotread produced:


Damien Miller said...

The wavelength resolution looks to be about 10nm/sample, is this right?

Anonymous said...

Ha, thank goodness for xterm history. Here's a sample of textual output:

Spectrum from 380.000000 to 730.000000 nm in 36 steps

0.002, 0.002, 0.002, 0.010, 0.047, 0.175, 0.499, 0.888, 0.648, 0.376, 0.307, 0.371, 0.478, 0.554, 0.589, 0.620, 0.665, 0.720, 0.778, 0.833, 0.913, 1.093, 1.333, 1.523, 1.522, 1.388, 1.186, 0.980, 0.776, 0.601, 0.457, 0.346, 0.259, 0.195, 0.143, 0.105

Result is XYZ: 73.089002 62.236647 34.372588, D50 Lab: 83.039107 29.002446 21.374381

Anonymous said...

Looks like there's a high-res mode that does 3.3nm steps instead of 10nm.