| Re: color value interpolation from colorbar [message #64123 is a reply to message #64122] |
Thu, 04 December 2008 12:11   |
Vince Hradil
Messages: 574 Registered: December 1999
|
Senior Member |
|
|
On Dec 4, 1:15 pm, "j.coe...@gmail.com" <j.coe...@gmail.com> wrote:
> The images are digitized, unfortunately, from analog recordings of
> medical scanning sessions. This is the reason the colors are not
> true. There is no way to retrieve the *exact* colors as they
> presumably appeared on the original equipment screen.
>
> Still, the recorded image quality on the tapes is considered good
> enough for review and even diagnosis. When radiologists look at these
> images, no one objects that the colorbars are incorrect, and that
> their reds and yellows don't exactly match the images' reds and
> yellows. No one can even tell, in fact. It is however clear to the
> human eye which areas are more yellow and which are more red. A
> computer should also be able to both find the image colors and assign
> interpolated colorbar values for more quantitative analysis.
>
> Even without the errors introduced by analog recording onto tape and
> digitization, I can imagine a color-coded image with gradations from
> red to yellow too fine to discern with the human eye. A colorbar
> could be created with a smaller sampling of discrete representative
> hues from most yellow to most red, say 25 hues. A human observer
> could interpret such a colorbar. Isn't it possible to write a
> computer program to interpolate values to the unknown colors from the
> colorspace traversed by a partial colorbar?
>
> Even in the very simple case of a two-hue colorbar, with yellow at 0
> and red at 100, we would still interpolate a value for an orange
> somewhere between 0 and 100, probably 50, based on certain assumptions
> we hold about color gradients. With more intermediate hues and more
> gradient values, shouldn't it be possible assign a reasonable value
> for that orange?
>
> It's clear that I do not know that much about color theory, but the
> motivation for this is that if a human observer can perform rough
> color interpolation on corrupted color-coded images, then a computer
> should be able to perform finer interpolation.
>
> Thanks
This is a very confusing thread 8^\
The idea of interpolation between colors is difficult because the
color space is three-dimensional. If you say "from red to yellow" you
have to specify what your path is. For instance:
r = replicate(255b,256)
g = bindgen(256)
b = replicate(0b,256)
tvlct, r, g, b
will give you a gradient from red to yellow (maybe "the simplest"?).
But so does b = 2b*[bindgen(128),reverse(bindgen(128)], it just goes
through purple.
Anyway, if this makes no sense just disregard it. I had trouble
figuring out the answer to your question, so this is an answer I
_could_ come up with.
Cheers,
Vince
|
|
|
|