Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PR: Add TE226 v2 colour checker reference values. #1113

Merged
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@
"DATA_COLORCHECKER24_AFTER_NOV2014",
"CCS_ILLUMINANT_COLORCHECKER24_AFTER_NOV2014",
"CCS_COLORCHECKER24_AFTER_NOV2014",
"CCS_TE226_V2",
"CCS_COLOURCHECKERS",
]

Expand Down Expand Up @@ -386,13 +387,95 @@ class ColourChecker(
*ColorChecker Classic* edition after November 2014.
"""

DATA_TE226_V2_CIE_XYZ: dict = {
"dark skin": np.array([0.1278, 0.1074, 0.0726]),
"light skin": np.array([0.4945, 0.4484, 0.3586]),
"blue sky": np.array([0.1459, 0.1690, 0.2925]),
"foliage": np.array([0.0714, 0.1243, 0.0254]),
"blue flower": np.array([0.4470, 0.4039, 0.7304]),
"bluish green": np.array([0.3921, 0.5420, 0.6113]),
"orange": np.array([0.4574, 0.3628, 0.0624]),
"purplish blue": np.array([0.2979, 0.3180, 0.8481]),
"moderate red": np.array([0.3884, 0.2794, 0.1886]),
"purple": np.array([0.1324, 0.0796, 0.3824]),
"yellow green": np.array([0.3399, 0.5786, 0.1360]),
"orange yellow": np.array([0.5417, 0.4677, 0.0644]),
"blue": np.array([0.0859, 0.0361, 0.4728]),
"green": np.array([0.1000, 0.2297, 0.0530]),
"red": np.array([0.3594, 0.1796, 0.0197]),
"yellow": np.array([0.5236, 0.5972, 0.0368]),
"magenta": np.array([0.4253, 0.2050, 0.5369]),
"cyan": np.array([0.4942, 0.6119, 1.0304]),
"patch19": np.array([0.2646, 0.2542, 0.1631]),
"patch20": np.array([0.7921, 0.7560, 0.5988]),
"patch21": np.array([0.4409, 0.4004, 0.3366]),
"patch22": np.array([0.1546, 0.3395, 0.1016]),
"patch23": np.array([0.3182, 0.3950, 0.5857]),
"patch24": np.array([0.5920, 0.5751, 0.9892]),
"patch25": np.array([0.4287, 0.2583, 0.0444]),
"patch26": np.array([0.4282, 0.5757, 0.4770]),
"patch27": np.array([0.1697, 0.1294, 0.7026]),
"patch28": np.array([0.2143, 0.1564, 0.1908]),
"patch29": np.array([0.1659, 0.3876, 0.3945]),
"patch30": np.array([0.1869, 0.1093, 0.7069]),
"patch31": np.array([0.3316, 0.1596, 0.1714]),
"patch32": np.array([0.8298, 0.8910, 0.5199]),
"patch33": np.array([0.1412, 0.1758, 0.4643]),
"patch34": np.array([0.0153, 0.0668, 0.0694]),
"patch35": np.array([0.6053, 0.5088, 0.1593]),
"patch36": np.array([0.4217, 0.4459, 0.3173]),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor

Fine to keep the space between patch and the patch number. patch19 --> patch 19.

"white": np.array([0.9505, 1.0000, 1.0888]),
"neutral 87": np.array([0.8331, 0.8801, 0.9576]),
"neutral 63": np.array([0.6050, 0.6401, 0.6958]),
"neutral 44": np.array([0.4119, 0.4358, 0.4724]),
"neutral 28": np.array([0.2638, 0.2798, 0.3018]),
"neutral 15": np.array([0.1405, 0.1489, 0.1598]),
"neutral 7": np.array([0.0628, 0.0665, 0.0701]),
"neutral 2": np.array(
[
0.0190,
0.0202,
0.0202,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor

Extra coma after 0.0202 forces an inconsistent formatting wrap.

]
),
"neutral < 0.1": np.array([0.0000, 0.0001, 0.0000]),
}

DATA_TE226_V2: dict = dict(
zip(
tuple(DATA_TE226_V2_CIE_XYZ.keys()),
XYZ_to_xyY(
list(DATA_TE226_V2_CIE_XYZ.values()),
CCS_ILLUMINANTS["CIE 1931 2 Degree Standard Observer"]["ICC D50"],
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Major

The whitepoint is actually D65:

image

image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your detailed review and advice! I would push the changes.

),
)
)

CCS_ILLUMINANT_TE226_V2: NDArrayFloat = CCS_ILLUMINANTS[
"CIE 1931 2 Degree Standard Observer"
]["ICC D50"]
"""*TE226 V2* illuminant."""

CCS_TE226_V2: ColourChecker = ColourChecker(
"ColorChecker45 - TE226 V2",
DATA_TE226_V2,
CCS_ILLUMINANT_TE226_V2,
)
"""
Reference data from *TE226 V2*. Transparent color rendition test chart
for HDTV cameras, in addition to known colors from “ColorChecker”, the test
chart contains colors which are critical in reproduction.
https://www.image-engineering.de/content/products/charts/te226/downloads/TE226_D_data_sheet.pdf
"""

CCS_COLOURCHECKERS: CanonicalMapping = CanonicalMapping(
{
"ColorChecker 1976": CCS_COLORCHECKER1976,
"ColorChecker 2005": CCS_COLORCHECKER2005,
"BabelColor Average": CCS_BABELCOLOR_AVERAGE,
"ColorChecker24 - Before November 2014": CCS_COLORCHECKER24_BEFORE_NOV2014,
"ColorChecker24 - After November 2014": CCS_COLORCHECKER24_AFTER_NOV2014,
"TE226 V2": CCS_TE226_V2,
}
)
CCS_COLOURCHECKERS.__doc__ = """
Expand Down