Sunday, December 14, 2014

Choosing colors for scientific visualization: the RGB gamut in CIELUV

I make a lot of plots for work, and color is a very useful way to convey information. These colors are usually represented in RGB, especially when dealing with colors on a computer screen.

However, RGB does not do a good job of representing human perception of color. You will find that [0 255 0] (green) appears much brighter than [255 0 0] (red), which is in turn brighter than [0 0 255] (blue). Furthermore, if you sample uniformly from the RGB space, you will find that an unreasonably large fraction of this appears green.

There have been many attempts to parameterize color in a way that is more closely related to human perception. The one that I've been using is the CIE 1976 (L*, u*, v*) color space, aka CIELUV. The L* is supposed to represent the apparent brightness, and (u*, v*) parameterize the apparent color. It is supposed to do this in such a way that the distance between two points in the CIELUV space corresponds to how distinguishable the corresponding colors are to a human with trichromatic vision.

However, not everything in this color space is representable on a computer monitor. That is, not all of those points will fall within the RGB gamut. So without further ado, I present the RGB gamut in the CIELUV color space:

The boundaries are where one or more of the RGB coordinates saturate.

According to my friend, who (like 7% of American males) has impaired color vision, the color contrast is greatest traveling along the vertical (v*) axis. Of course, there are many ways in which your color vision could be impaired, so his experience is not representative of all color blind people.

More plots below:

Wednesday, September 3, 2014

Garage door opener repair

A while back, our garage door opener (a Genie Pro 82 screw-drive) developed an odd problem: the light was stuck on. Normally, it is supposed to turn off a few minutes after use, but now it stopped turning off.

I reasoned that it was probably a relay that failed (it's always the moving parts that fail) and that it was stuck in the closed (i.e. "on") position. A quick search online confirmed that this is a common failure mode.

The opened opener:

Tuesday, March 4, 2014

Printing on both sides

This keeps annoying me; I don't know why it keeps coming up.

My printer has a duplexer, but sometimes Windows 7 forgets about it. HP has a help page about it, the gist of which is:

Control Panel -> Right-click on your printer -> Printer properties -> Device Settings
Set "Duplex Unit" to "Installed" and, to reduce confusion, set "Allow manual duplexing" to "Disabled"

Tuesday, February 18, 2014

Terminal adventures

I do a lot of work remotely for work. Somewhere in the server room there is a beast of a computer with 100's of GB of RAM and a 10-gigabit connection to a dozen other computers hosting half a petabyte of storage.

Mostly I work in MATLAB. If I need graphics, we have a nice OpenNX setup that does remote desktop quite well. It's nearly seamless when I'm on-site, and is still tolerable when I use it from home over DSL (as long as nobody else at home is using the upload capacity).

But often I don't need full graphics, just a text editor and the MATLAB command window. So in today's adventure, we are going to try setting up tmux and vim.