The Quest for Good Color - 2. Spectral Profiles "On The Cheap"

That’s insightful… how do you encode that to feed dcamprof?

Plenty of patches and illuminants to try out. $, :clock1:, $, :clock1030: and $ I am sure. But think of the adoration and likes! :stuck_out_tongue: Do spend time with the wife. :stuck_out_tongue_closed_eyes:

After using Numbers (Mac Excel) to reformat the raw Lippmann 2000 data, I used Dcamprof’s “txt2ti3” to convert the raw data to a .ti3 patch data file. Then I used
dcamprof make-target -p Lippman2000.ti3 -p white Lippman2000_white.ti3
to have dcamprof add a 100% reflective pure white (since the Lippman 2000 data set doesn’t have a neutral white patch). The R,G,B three patch set is from the basiCColor target files that are included when you download the basiCColor Input 6 Pro demo. The basiCColor demo includes a treasure trove of target data files, many of which include spectral data.

To save you the trouble, here’s my Lippmann 2000 + white patch ti3

And here are all the basiCColor target data sets

Some of them are just LAB readings, but many of the targets have spectral data as well. I’ve already reformatted and converted a number of them to .ti3 files. For any spectral files that aren’t converted yet you’ll need to open them in something like excel, strip out everything other than the spectral data sets for each patch, export to txt files, and then run them through txt2ti3 including the wavelength range of the spectral bands, sample spacing, and whether the data is formatted in columns (-l cols) or rows (-l rows):
dcamprof txt2ti3 -f 380,720,10 -l rows specdatafile.txt outputfile.ti3

I really like using Lumariver because you can instantly see the effect of switching patch sets, tone curves, tone reproduction operators, etc, without having to create multiple profiles and load them into your software to compare. Dcamprof itself is slightly more powerful, but Lumariver gives access to most of Dcamprof’s flags and the instant feedback is invaluable. Highly recommended!

1 Like

Based on Nate’s generous howto, I went alooking for more information on the Lippman dataset. What I found, however, was a simple passage that really puts the context into how we do imaging today:

Just read the “Description” at the top, and then tell me what you think of RGB imaging… :stuck_out_tongue_closed_eyes:

Hah, yeah, it would be amazing to have cameras that can read full spectral data for each pixel, but considering that a Sekonic SpectroMaster Color Meter (which is essentially a one “pixel” spectral camera with an integrating sphere) still costs $1700 I think we’re still a ways off :stuck_out_tongue_winking_eye:

I wonder what would be needed to make spectral camera? I’m guessing it would be a monochrome camera and a series of exposures using quite a few narrow band notch filters. I’m thinking that maybe the current system is good enough, haha

Edit: Just came across this. Lots of info and some software for multispectral imaging. Now I just need to be able to afford Matlab and learn programming!

I am amazed!

The few times I’ve had to look at a Matlab thing, I used Octave. Worked fine for what I was picking at, GNU-free:

1 Like

So was I, when it was pointed out that the RGB mechanism relies on human metameric behavior to work. I mean, makes fundamental sense looking at these past four posts, but when put into words…

1 Like

I think Matlab Home (not for academic or commercial use) is unbelievable value for the money.

I am not a programmer, I came to Matlab five years ago - because my spreadsheets were getting too unwieldy - via open source Octave, which I left quickly because it required a little too much hacking to keep running. Matlab was like coming home for me: it just worked out of the box and I was up and running in a couple of hours. Intuitive professional package, nicely integrated IDE, huge knowledge base, someone else has almost always run into a similar problem to yours and come up with a solution over the last 30+ years

I consider Matlab Home, the very reasonably priced full fledged version for non professional/academic use, the deal of the century. If you go that way you’ll probably also want the Image Processing Toolkit.

1 Like

I agree that Matlab is convenient. (I am curious what your install size is.) On the other hand, spreadsheets and Octave are powerful but you would have to eke out the potential.

I’ve drafted a how-to for constructing a camera profiling spectrometer:

Camera_Profiling_Spectrometer-Build_Instructions.pdf (639.0 KB)
License: CC BY-NC-SA 4.0

I’ll eventually include it in the ssftool repo.

3 Likes

this is so cool. thanks for the build instructions!

1 Like

The “Program FIles/MATLAB” folder for the version I am currently using (R2018B) uses 4.43GB of disk space, including Image Processing Toolbox, Optimization Toolbox and MinGW Compiler support.

Fantastic description of the building process !
Makes me wonder if I should start my own build :slight_smile:

1 Like

You should, you should… :smiley:

It’d be good to know how repeatable is this process. I’d also like to collect SSF data for more cameras. If you do take on the build, just keep safety in mind; the two power tools needed are relatively safe, but there are always ways of malign lurking to bite you. I need to add a safety warning to the instructions…

For sure, I’ll be careful, thanks for the advice :slight_smile:
I already have the required power tools and know how to handle them.
As a good European, I’ll have first to convert your measures in metric one and then try to find the furniture in local stores (or at least in stores that deliver in EU).

A small questions about the building process, maybe I missed it, but where does the 34 degrees angle comes from ? As I understand it, it comes from the diffraction grating specifications. If you have a 1200lines/mm does the angle change?

The angle for a 1200lines/mm grating would be 42 degrees.

Scroll back up to the first post for a supporting description. It’s around the animated GIF of the diffraction, essentially that angle produces a symmetric distribution of the spectrum around the mid-point wavelength of our concern, which is about 555nm.

This occurred to me as i wrote the instructions, but I don’t know what kind of equivalent wood is available in your neck of the woods. Let me know what you come up with, and i’ll rev the instructions to include them.

By the way, the critical measurement is the incident light angle we just discussed, next is probably the 12" length which has to do with how close the camera lens is to focus on the slit. After that, it’s mostly TLAR: That Looks About Right… :laughing:

I’ve only once found a case where Matlab had any significant benefit for my uses over Octave - it was because a particular tool written by another employee at my company who chose to use Matlab used a function still not reimplemented in Octave.

However, that tool was a nightmare to maintain and I eventually rewrote the entire damn thing in Python in the span of two weeks.

numpy + pandas + matplotlib is pretty powerful too, and easier to hook in to other Python components

There it is again, damned Python… :stuck_out_tongue_closed_eyes:

I guess I’ll have to dig out that text I almost threw away when I moved out of my office at school…

Yes, it seems that it is the flavour de la décade. I don’t mind it but I have the same problem with it that I have with Octave: it feels hacked and it requires effort to get and keep up and running. Non-programmers like me that would use it mainly for fast prototyping need stuff off the shelf that works off the bat, without having to invest time to assemble and maintain the software we use. I do realize that this goes against the open source credo, but as mentioned the price is imho more than reasonable for what it offers :wink: