This repository provides fundamental data for conversion from some color spaces (e.g. RGB) to Munsell color system. All the data are generated with color library dufy.
I don't claim any rights on the generated data (i.e. files in dat/ directory), which are all based on the Munsell renotation data. The other codes are under the MIT lincense.
- sRGB: mid-srgb-d65.dat
- sRGB [D50]: mid-srgb-d50.dat
- Adobe RGB: mid-adobergb-d65.dat
- Adobe RGB [D50]: mid-adobergb-d50.dat
Each of these files is 256 * 256 * 256 * 32 bit (≒ 64MB) binary data, which is a table of conversion from hex (#000000 to #FFFFFF) to Munsell color. Each 32-bit data gives a corresponding Munsell color in hue-value-chroma format in big-endian byte-order:
1-bit | 1-bit | 10-bit | 10-bit | 10-bit |
---|---|---|---|---|
0 | 0 | 0000000000 | 0000000000 | 0000000000 |
F | - | H | V | C |
This flag means that the transformation error is slightly large, which is estimated as follows:
error_diagram digraph G { graph [ labelloc = "t", label = "Transformation Error e.g. in the case of sRGB(D65)", fontsize = 16 ]; node [shape = "box", fontname = "helvetica"] munsell [ label = "Munsell Color" ] lchab [ label = "LCh(ab)\n illuminant C" ] xyzc [label = "XYZ\nilluminant C" ] xyzd65a [label = "XYZ\nilluminant D65" ] xyzd65b [label = "XYZ\nilluminant D65" ] hex [label = "Hex"]
{rank=same; munsell; hex;} {rank=same; xyzd65a; xyzd65b;}
munsell -> lchab [label = "dufy:mhvc-to-lchab-illum-c"] hex -> xyzd65b lchab -> xyzc xyzc -> xyzd65a [label = "Bradford" ]
xyzd65b -> xyzd65a [ label = "Error", dir = both, color = palevioletred3, fontcolor = palevioletred3 ]
} error_diagram
The error is evaluated by ΔE∗ab: If ΔE∗ab ≥ 1.0, the flag is 1.
H corresponds to Munsell hue string as follows:
H | Hue String |
---|---|
0 to 100 | 10RP (=0R) to 10R (=0YR) |
100 to 200 | 10R (=0YR) to 10YR (=0Y) |
... | ... |
900 to 999 | 10P (=0RP) to 9.9RP |
Munsell value in [0, 10] is quantized to V by 0.01.
Munsell chroma in [0, 50] is quantized to C by 0.1.
The transformation error is evaluated as described above. The general statistics is as follows:
RGB space | Num. of nodes s.t. Δ E∗ab ≥ 1 | Mean Δ E∗ab | Max. Δ E∗ab | Mean Δ E∗00 | Max. Δ E∗00 |
---|---|---|---|---|---|
sRGB (D65) | 0 | 0.1992 | 0.9855 | 0.09047 | 0.7190 |
sRGB (D50) | 287 | 0.2006 | 1.167 | 0.09395 | 0.6750 |
Adobe RGB (D65) | 28502 | 0.2188 | 1.346 | 0.09073 | 1.155 |
Adobe RGB (D50) | 19199 | 0.2202 | 1.325 | 0.09397 | 1.112 |
Note: as is clear from the above diagram, the error here means the color difference not to true colors but to the return values of dufy:mhvc-to-lchab-illum-c
. For more information about the converter, see https://github.com/privet-kitty/dufy.
- Medium set [C]: lchab-to-munsell.dat
- Large set [C]: lchab-to-munsell-large.dat
- Medium set [D65]: lchab-to-munsell-d65.dat
- Large set [D65]: lchab-to-munsell-d65-large.dat
- Medium set [D50]: lchab-to-munsell-d50.dat
- Large set [D50]: lchab-to-munsell-d50-large.dat
These files are space-separated data of LChab and Munsell notations:
L* C*ab hab H V C H360
2 10 0 6.6121R 0.19144 1.49703 23.8035
2 15 0 6.7657R 0.19144 2.33540 24.3564
2 20 0 7.0775R 0.19144 3.34647 25.4789
2 10 9 0.6621YR 0.19144 1.52596 38.3835
2 15 9 0.8897YR 0.19144 2.37836 39.2031
... ... ... ... ... ... ...
Here H360 is a numerical form of Munsell hue notation:
H360 | H |
---|---|
0 to 36 | 10RP (=0R) to 10R (=0YR) |
36 to 72 | 10R (=0YR) to 10YR (=0Y) |
... | ... |
324 to 360 | 10P (=0RP) to 10RP (= 0R) |
Since the Munsell renotation data is measured under illuminant C, the data sets of illuminant D65 and D50 are generated by Bradford transformation. Hence you should use those of illuminant C, if you need raw data.
For each illuminant there are two data sets of different size:
Data set | L∗ | C∗ab | Hab |
---|---|---|---|
Medium | 10, 20, 30, ... , 100 | 5, 10, 15, ..., max. in MRD | 0, 9, 18, ..., 351 |
Large | 2, 4, 6, ... , 100 | 5, 10, 15, ..., max. in MRD | 0, 3, 6, ..., 357 |
Each data is accurate (i.e. significant digits = display digits) as an inversion of dufy:mhvc-to-lchab-illum-c
. Therefore the true errors depend on it. For more information, see https://github.com/privet-kitty/dufy.