-----
hello!
a question for all labeling enthusiasts, perfect for a brain color
crowd:
who has given color schemes for brain labels some serious thought?
that is, color maps suitable for brain mapping, if not for framing?
at first, a hierarchical coloring scheme where the major lobes have
general colors (like green, red, etc.) with parcellation units having
variants on the major lobe color (like green-yellow, dark green, etc.
for the "green" lobe) sounds attractive, but i have concerns over how
distinctive the anatomical boundaries would be.
any thoughts or experience on the matter?
cheers,
@rno
-----
Hi Arno, et al.
It is possible to N-color a brain in some optimal way, as brain
parcellations are fairly similar to political maps, which can be 4-
colored. The algorithm is somewhere in ImageMath. I don't know
enough about the topology of the labels to be able to claim 4 is
enough ... anyway, I recognize that you don't want only 4 colors but
it is worth thinking about writing an algorithm that could "find" the
best coloring for the major set of labels and then also for the sub-
labels given a reasonable set of rules, perhaps based on vision and
contrast.
Just a thought.
B.A
-----
let me throw another constraint into this picture. the labels will
likely need to differ depending on inflated/non-inflated
representations.
cheers,
satra
-----
I know we have tried a few color schemes here. When I picked mine, I
did it manually just to try to make each gyrus distinct from its
neighbors. We've also tried coloring subdivisions using shades of a
single color, but I don't think that worked out well. I will check
with Amanda Hammond (our visualization director/graphic designers)
about that one.
It may be the case that you want different schemes for different users
(e.g., those who are generating the labels, different types of end
users, etc.).
It would also be good to have a scheme that is suitable for people who
are colorblind.
[david shattuck]
-----



I was thinking about something exactly like this and coded up a
quick solution.
We could find a color scheme to optimize a weighted combination of the :
1. minimal perceptual difference between any two labels
2. minimal chrominance difference between any two labels within a set of labels.
Four our cortical surfaces, we have 33 labels in 6 general categories.
Basically – 6 groups: browns, blues, pinks, cyan, greys, purples.
We could fold in addition constraints, such as on L* (to prevent
black/white labels) – any artists with Matlab want to play with some code?
If you send me a .vtk or a matlab mesh dataset, I can try out some color schemes too.
-Bennett
argmin perceptualLumaPenalty – perceptualPairwiseDiff +
perceptualGroupwiseColorSimiliarity
I used the simplex method based on the CIE L*a*b* colorspace. The result is to keep all the colors in a reasonable luminance range (no dark gray/white), find colors such that the minimal perceptual difference between any two colors is maximized and choose chrominance for groups keeps various structures in the same color family. We could easily factor in geographic weightings to give more importance to local perceptual differences.
Adjusting the relative importance weightings of these criteria is an art form (as is adjusting the initial color seeds for each grouped region). It’s fun – and the results are pretty.
Purples – frontal.
Reds – parietal
Green – temporal
Teal – occipital
Cingulate is also colors.

I’m thrilled to see that there is interest – and I appreciate Arno’s insight. I’ll clean up the code and make a little demo. Currently, it runs in matlab, but the approach is simple and can be ported simply. I’ll try to get this wrapped up in the next two weeks – we’re closing out for finals and things are quite busy.
I’m thrilled to see that there is interest – and I appreciate Arno’s insight. I’ll clean up the code and make a little demo. Currently, it runs in matlab, but the approach is simple and can be ported simply. I’ll try to get this wrapped up in the next two weeks – we’re closing out for finals and things are quite busy.
From: brain...@googlegroups.com [mailto:brain...@googlegroups.com] On Behalf Of Andrew J. Worth
Sent: Tuesday, April 13, 2010 8:15 AM
To: brain...@googlegroups.com
I’m thrilled to see that there is interest – and I appreciate Arno’s insight. I’ll clean up the code and make a little demo. Currently, it runs in matlab, but the approach is simple and can be ported simply. I’ll try to get this wrapped up in the next two weeks – we’re closing out for finals and things are quite busy.
From: brain...@googlegroups.com [mailto:brain...@googlegroups.com] On Behalf Of Andrew J. Worth
Sent: Tuesday, April 13, 2010 8:15 AM
To: brain...@googlegroups.com
Short answer no. But… here it is anyway.
The files perceptual… define perceptual error penalties between sets of colors.
perceptualLumaPenaltyCIE – computes a soft minimum brightness for any label
perceptualPairwiseDiffCIE – computes the average minimum distance between any two label colors
perceptualGroupwiseColorSimiliarityCIE – computes the average minimum distance between members of groups of colors.
Colorspace.m is a library routine for converting between colorspaces.
I throw all the above into an optimizer with some tradeoff balancing terms… poor … out spits a new color map.
Convergence is not that fast and the “quality” of the results is subjective. L
It’s going to take some artistic skill to define appropriate tradeoffs, but these metrics provide very reasonable handles to control quantitative metrics of “optimality”.
Here’s an example code:
L = [7 5 4 5 5 6];
N = sum(L);
LL= ((hsv(length(L))));
RGB = 0*((hsv((N))));off=0;
for i=1:length(L)
for j=1:L(i)
RGB(off+j,:)=LL(i,:);
end
off = off+L(i);
end
RGB=min(1,max(0,RGB+randn(size(RGB))/30));
B = COLORSPACE('RGB->LAB',RGB);
B(:,1)=80+40*(rand(size(B(:,1)))-.5);
RGB=COLORSPACE('RGB<-LAB',B);
B(:,1)=80;
RGB=COLORSPACE('RGB<-LAB',B);
options = optimset('TolX',.01,'MaxIter',1e5,'Display','iter');
xRGB = COLORSPACE('RGB->LAB',RGB);
x = fminsearch(@(x) .5e5*perceptualLumaPenaltyCIE(x(:),80,5)-10*perceptualPairwiseDiffCIE(x(:))+perceptualGroupwiseColorSimiliarityCIE(x(:),L)/5,xRGB,options);
B=reshape(x,[length(x(:))/3 3]);
B(:,1) = min(255,max(0,B(:,1)));
B(:,2) = min(255,max(-255,B(:,2)));
B(:,3) = min(255,max(-255,B(:,3)));
x=COLORSPACE('RGB<-LAB',B);
figure(1)
close all; imagesc(1:N); colormap(min(1,max(0,x))); axis off
title('New');
figure(2)
imagesc(1:N); colormap(RGB); axis off
title('Original');
Result:


From: brain...@googlegroups.com [mailto:brain...@googlegroups.com] On Behalf Of Arno Klein
Good plan. We’re wrestling with SPIE-MI down in Nashville – along with seemingly constant thunderstorms. Once we get a few bugs worked out, I’ll send you a preview of our labeling adventures… they might be useful for the brainColor project.
-bennett
<image007.jpg>