Coverage for colour/models/__init__.py: 100%
82 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-15 19:01 +1300
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-15 19:01 +1300
1import sys
2from typing import Annotated
4from colour.hints import NDArrayFloat
5from colour.utilities import copy_definition, get_domain_range_scale_metadata
7# isort: split
9from .common import (
10 COLOURSPACE_MODELS,
11 COLOURSPACE_MODELS_AXIS_LABELS,
12 COLOURSPACE_MODELS_DOMAIN_RANGE_SCALE_1_TO_REFERENCE,
13 Iab_to_XYZ,
14 Jab_to_JCh,
15 JCh_to_Jab,
16 XYZ_to_Iab,
17)
19# isort: split
21from .cam02_ucs import (
22 CAM02LCD_to_JMh_CIECAM02,
23 CAM02LCD_to_XYZ,
24 CAM02SCD_to_JMh_CIECAM02,
25 CAM02SCD_to_XYZ,
26 CAM02UCS_to_JMh_CIECAM02,
27 CAM02UCS_to_XYZ,
28 JMh_CIECAM02_to_CAM02LCD,
29 JMh_CIECAM02_to_CAM02SCD,
30 JMh_CIECAM02_to_CAM02UCS,
31 XYZ_to_CAM02LCD,
32 XYZ_to_CAM02SCD,
33 XYZ_to_CAM02UCS,
34)
35from .cam16_ucs import (
36 CAM16LCD_to_JMh_CAM16,
37 CAM16LCD_to_XYZ,
38 CAM16SCD_to_JMh_CAM16,
39 CAM16SCD_to_XYZ,
40 CAM16UCS_to_JMh_CAM16,
41 CAM16UCS_to_XYZ,
42 JMh_CAM16_to_CAM16LCD,
43 JMh_CAM16_to_CAM16SCD,
44 JMh_CAM16_to_CAM16UCS,
45 XYZ_to_CAM16LCD,
46 XYZ_to_CAM16SCD,
47 XYZ_to_CAM16UCS,
48)
49from .cie_xyy import (
50 XYZ_to_xy,
51 XYZ_to_xyY,
52 xy_to_xyY,
53 xy_to_XYZ,
54 xyY_to_xy,
55 xyY_to_XYZ,
56)
58# isort: split
60from .cie_lab import Lab_to_XYZ, XYZ_to_Lab
61from .cie_luv import (
62 CIE1976UCS_to_XYZ,
63 Luv_to_uv,
64 Luv_to_XYZ,
65 Luv_uv_to_xy,
66 XYZ_to_CIE1976UCS,
67 XYZ_to_Luv,
68 uv_to_Luv,
69 xy_to_Luv_uv,
70)
71from .cie_ucs import (
72 CIE1960UCS_to_XYZ,
73 UCS_to_uv,
74 UCS_to_XYZ,
75 UCS_uv_to_xy,
76 XYZ_to_CIE1960UCS,
77 XYZ_to_UCS,
78 uv_to_UCS,
79 xy_to_UCS_uv,
80)
81from .cie_uvw import UVW_to_XYZ, XYZ_to_UVW
82from .din99 import DIN99_to_Lab, DIN99_to_XYZ, Lab_to_DIN99, XYZ_to_DIN99
83from .hdr_cie_lab import (
84 HDR_CIELAB_METHODS,
85 XYZ_to_hdr_CIELab,
86 hdr_CIELab_to_XYZ,
87)
88from .hunter_lab import (
89 Hunter_Lab_to_XYZ,
90 XYZ_to_Hunter_Lab,
91 XYZ_to_K_ab_HunterLab1966,
92)
93from .hunter_rdab import Hunter_Rdab_to_XYZ, XYZ_to_Hunter_Rdab
94from .icacb import ICaCb_to_XYZ, XYZ_to_ICaCb
95from .igpgtg import IgPgTg_to_XYZ, XYZ_to_IgPgTg
96from .ipt import IPT_hue_angle, IPT_to_XYZ, XYZ_to_IPT
97from .jzazbz import (
98 IZAZBZ_METHODS,
99 Izazbz_to_XYZ,
100 Jzazbz_to_XYZ,
101 XYZ_to_Izazbz,
102 XYZ_to_Jzazbz,
103)
105# isort: split
107from .hdr_ipt import HDR_IPT_METHODS, XYZ_to_hdr_IPT, hdr_IPT_to_XYZ
108from .oklab import Oklab_to_XYZ, XYZ_to_Oklab
109from .osa_ucs import OSA_UCS_to_XYZ, XYZ_to_OSA_UCS
110from .prolab import ProLab_to_XYZ, XYZ_to_ProLab
111from .ragoo2021 import IPT_Ragoo2021_to_XYZ, XYZ_to_IPT_Ragoo2021
112from .sucs import (
113 XYZ_to_sUCS,
114 sUCS_chroma,
115 sUCS_hue_angle,
116 sUCS_Iab_to_sUCS_ICh,
117 sUCS_ICh_to_sUCS_Iab,
118 sUCS_to_XYZ,
119)
120from .yrg import LMS_to_Yrg, XYZ_to_Yrg, Yrg_to_LMS, Yrg_to_XYZ
122# isort: split
124from .datasets import (
125 CCS_ILLUMINANT_POINTER_GAMUT,
126 CCS_POINTER_GAMUT_BOUNDARY,
127 DATA_MACADAM_1942_ELLIPSES,
128 DATA_POINTER_GAMUT_VOLUME,
129)
131# isort: split
133from .rgb import (
134 BT2100_HLG_EOTF_INVERSE_METHODS,
135 BT2100_HLG_EOTF_METHODS,
136 BT2100_HLG_OOTF_INVERSE_METHODS,
137 BT2100_HLG_OOTF_METHODS,
138 CCTF_DECODINGS,
139 CCTF_ENCODINGS,
140 COLOUR_PRIMARIES_ITUTH273,
141 EOTF_INVERSES,
142 EOTFS,
143 LOG3G10_DECODING_METHODS,
144 LOG3G10_ENCODING_METHODS,
145 LOG_DECODINGS,
146 LOG_ENCODINGS,
147 MATRIX_COEFFICIENTS_ITUTH273,
148 OETF_INVERSES,
149 OETFS,
150 OOTF_INVERSES,
151 OOTFS,
152 RGB_COLOURSPACE_ACES2065_1,
153 RGB_COLOURSPACE_ACESCC,
154 RGB_COLOURSPACE_ACESCCT,
155 RGB_COLOURSPACE_ACESCG,
156 RGB_COLOURSPACE_ACESPROXY,
157 RGB_COLOURSPACE_ADOBE_RGB1998,
158 RGB_COLOURSPACE_ADOBE_WIDE_GAMUT_RGB,
159 RGB_COLOURSPACE_APPLE_RGB,
160 RGB_COLOURSPACE_ARRI_WIDE_GAMUT_3,
161 RGB_COLOURSPACE_ARRI_WIDE_GAMUT_4,
162 RGB_COLOURSPACE_BEST_RGB,
163 RGB_COLOURSPACE_BETA_RGB,
164 RGB_COLOURSPACE_BLACKMAGIC_WIDE_GAMUT,
165 RGB_COLOURSPACE_BT470_525,
166 RGB_COLOURSPACE_BT470_625,
167 RGB_COLOURSPACE_BT709,
168 RGB_COLOURSPACE_BT2020,
169 RGB_COLOURSPACE_CIE_RGB,
170 RGB_COLOURSPACE_CINEMA_GAMUT,
171 RGB_COLOURSPACE_COLOR_MATCH_RGB,
172 RGB_COLOURSPACE_DAVINCI_WIDE_GAMUT,
173 RGB_COLOURSPACE_DCDM_XYZ,
174 RGB_COLOURSPACE_DCI_P3,
175 RGB_COLOURSPACE_DCI_P3_P,
176 RGB_COLOURSPACE_DISPLAY_P3,
177 RGB_COLOURSPACE_DJI_D_GAMUT,
178 RGB_COLOURSPACE_DON_RGB_4,
179 RGB_COLOURSPACE_DRAGON_COLOR,
180 RGB_COLOURSPACE_DRAGON_COLOR_2,
181 RGB_COLOURSPACE_EBU_3213_E,
182 RGB_COLOURSPACE_ECI_RGB_V2,
183 RGB_COLOURSPACE_EKTA_SPACE_PS_5,
184 RGB_COLOURSPACE_ERIMM_RGB,
185 RGB_COLOURSPACE_F_GAMUT,
186 RGB_COLOURSPACE_F_GAMUT_C,
187 RGB_COLOURSPACE_FILMLIGHT_E_GAMUT,
188 RGB_COLOURSPACE_FILMLIGHT_E_GAMUT_2,
189 RGB_COLOURSPACE_G18_REC709_SCENE,
190 RGB_COLOURSPACE_G22_ADOBERGB_SCENE,
191 RGB_COLOURSPACE_G22_AP1_SCENE,
192 RGB_COLOURSPACE_G22_REC709_SCENE,
193 RGB_COLOURSPACE_H273_22_UNSPECIFIED,
194 RGB_COLOURSPACE_H273_GENERIC_FILM,
195 RGB_COLOURSPACE_LIN_ADOBERGB_SCENE,
196 RGB_COLOURSPACE_LIN_CIEXYZD65_SCENE,
197 RGB_COLOURSPACE_LIN_P3D65_SCENE,
198 RGB_COLOURSPACE_LIN_REC709_SCENE,
199 RGB_COLOURSPACE_LIN_REC2020_SCENE,
200 RGB_COLOURSPACE_MAX_RGB,
201 RGB_COLOURSPACE_N_GAMUT,
202 RGB_COLOURSPACE_NTSC1953,
203 RGB_COLOURSPACE_NTSC1987,
204 RGB_COLOURSPACE_P3_D65,
205 RGB_COLOURSPACE_PAL_SECAM,
206 RGB_COLOURSPACE_PLASA_ANSI_E154,
207 RGB_COLOURSPACE_PROPHOTO_RGB,
208 RGB_COLOURSPACE_PROTUNE_NATIVE,
209 RGB_COLOURSPACE_RED_COLOR,
210 RGB_COLOURSPACE_RED_COLOR_2,
211 RGB_COLOURSPACE_RED_COLOR_3,
212 RGB_COLOURSPACE_RED_COLOR_4,
213 RGB_COLOURSPACE_RED_WIDE_GAMUT_RGB,
214 RGB_COLOURSPACE_RIMM_RGB,
215 RGB_COLOURSPACE_ROMM_RGB,
216 RGB_COLOURSPACE_RUSSELL_RGB,
217 RGB_COLOURSPACE_S_GAMUT,
218 RGB_COLOURSPACE_S_GAMUT3,
219 RGB_COLOURSPACE_S_GAMUT3_CINE,
220 RGB_COLOURSPACE_SHARP_RGB,
221 RGB_COLOURSPACE_SMPTE_240M,
222 RGB_COLOURSPACE_SMPTE_C,
223 RGB_COLOURSPACE_SRGB_AP1_SCENE,
224 RGB_COLOURSPACE_SRGB_P3D65_SCENE,
225 RGB_COLOURSPACE_SRGB_REC709_SCENE,
226 RGB_COLOURSPACE_V_GAMUT,
227 RGB_COLOURSPACE_VENICE_S_GAMUT3,
228 RGB_COLOURSPACE_VENICE_S_GAMUT3_CINE,
229 RGB_COLOURSPACE_XTREME_RGB,
230 RGB_COLOURSPACES,
231 RGB_COLOURSPACES_TEXTURE_ASSETS_AND_CG_RENDERING_CIF,
232 TRANSFER_CHARACTERISTICS_ITUTH273,
233 WEIGHTS_YCBCR,
234 CMY_to_CMYK,
235 CMY_to_RGB,
236 CMYK_to_CMY,
237 CV_range,
238 HCL_to_RGB,
239 HSL_to_RGB,
240 HSV_to_RGB,
241 ICtCp_to_RGB,
242 ICtCp_to_XYZ,
243 IHLS_to_RGB,
244 Prismatic_to_RGB,
245 RGB_Colourspace,
246 RGB_COLOURSPACE_sRGB,
247 RGB_luminance,
248 RGB_luminance_equation,
249 RGB_to_CMY,
250 RGB_to_HCL,
251 RGB_to_HSL,
252 RGB_to_HSV,
253 RGB_to_ICtCp,
254 RGB_to_IHLS,
255 RGB_to_Prismatic,
256 RGB_to_RGB,
257 RGB_to_XYZ,
258 RGB_to_YCbCr,
259 RGB_to_YcCbcCrc,
260 RGB_to_YCoCg,
261 XYZ_to_ICtCp,
262 XYZ_to_RGB,
263 XYZ_to_sRGB,
264 YCbCr_to_RGB,
265 YcCbcCrc_to_RGB,
266 YCoCg_to_RGB,
267 cctf_decoding,
268 cctf_decoding_ProPhotoRGB,
269 cctf_decoding_RIMMRGB,
270 cctf_decoding_ROMMRGB,
271 cctf_encoding,
272 cctf_encoding_ProPhotoRGB,
273 cctf_encoding_RIMMRGB,
274 cctf_encoding_ROMMRGB,
275 chromatically_adapted_primaries,
276 describe_video_signal_colour_primaries,
277 describe_video_signal_matrix_coefficients,
278 describe_video_signal_transfer_characteristics,
279 eotf,
280 eotf_BT1886,
281 eotf_BT2100_HLG,
282 eotf_BT2100_PQ,
283 eotf_DCDM,
284 eotf_DICOMGSDF,
285 eotf_H273_ST428_1,
286 eotf_inverse,
287 eotf_inverse_BT1886,
288 eotf_inverse_BT2100_HLG,
289 eotf_inverse_BT2100_PQ,
290 eotf_inverse_DCDM,
291 eotf_inverse_DICOMGSDF,
292 eotf_inverse_H273_ST428_1,
293 eotf_inverse_sRGB,
294 eotf_inverse_ST2084,
295 eotf_SMPTE240M,
296 eotf_sRGB,
297 eotf_ST2084,
298 exponent_function_basic,
299 exponent_function_monitor_curve,
300 full_to_legal,
301 gamma_function,
302 legal_to_full,
303 linear_function,
304 log_decoding,
305 log_decoding_ACEScc,
306 log_decoding_ACEScct,
307 log_decoding_ACESproxy,
308 log_decoding_AppleLogProfile,
309 log_decoding_ARRILogC3,
310 log_decoding_ARRILogC4,
311 log_decoding_CanonLog,
312 log_decoding_CanonLog2,
313 log_decoding_CanonLog3,
314 log_decoding_Cineon,
315 log_decoding_DJIDLog,
316 log_decoding_ERIMMRGB,
317 log_decoding_FilmicPro6,
318 log_decoding_FilmLightTLog,
319 log_decoding_FLog,
320 log_decoding_FLog2,
321 log_decoding_LLog,
322 log_decoding_Log2,
323 log_decoding_Log3G10,
324 log_decoding_Log3G12,
325 log_decoding_MiLog,
326 log_decoding_NLog,
327 log_decoding_Panalog,
328 log_decoding_PivotedLog,
329 log_decoding_Protune,
330 log_decoding_REDLog,
331 log_decoding_REDLogFilm,
332 log_decoding_SLog,
333 log_decoding_SLog2,
334 log_decoding_SLog3,
335 log_decoding_ViperLog,
336 log_decoding_VLog,
337 log_encoding,
338 log_encoding_ACEScc,
339 log_encoding_ACEScct,
340 log_encoding_ACESproxy,
341 log_encoding_AppleLogProfile,
342 log_encoding_ARRILogC3,
343 log_encoding_ARRILogC4,
344 log_encoding_CanonLog,
345 log_encoding_CanonLog2,
346 log_encoding_CanonLog3,
347 log_encoding_Cineon,
348 log_encoding_DJIDLog,
349 log_encoding_ERIMMRGB,
350 log_encoding_FilmicPro6,
351 log_encoding_FilmLightTLog,
352 log_encoding_FLog,
353 log_encoding_FLog2,
354 log_encoding_LLog,
355 log_encoding_Log2,
356 log_encoding_Log3G10,
357 log_encoding_Log3G12,
358 log_encoding_MiLog,
359 log_encoding_NLog,
360 log_encoding_Panalog,
361 log_encoding_PivotedLog,
362 log_encoding_Protune,
363 log_encoding_REDLog,
364 log_encoding_REDLogFilm,
365 log_encoding_SLog,
366 log_encoding_SLog2,
367 log_encoding_SLog3,
368 log_encoding_ViperLog,
369 log_encoding_VLog,
370 logarithmic_function_basic,
371 logarithmic_function_camera,
372 logarithmic_function_quasilog,
373 matrix_RGB_to_RGB,
374 matrix_YCbCr,
375 normalised_primary_matrix,
376 oetf,
377 oetf_ARIBSTDB67,
378 oetf_BlackmagicFilmGeneration5,
379 oetf_BT601,
380 oetf_BT709,
381 oetf_BT1361,
382 oetf_BT2020,
383 oetf_BT2100_HLG,
384 oetf_BT2100_PQ,
385 oetf_DaVinciIntermediate,
386 oetf_H273_IEC61966_2,
387 oetf_H273_Log,
388 oetf_H273_LogSqrt,
389 oetf_inverse,
390 oetf_inverse_ARIBSTDB67,
391 oetf_inverse_BlackmagicFilmGeneration5,
392 oetf_inverse_BT601,
393 oetf_inverse_BT709,
394 oetf_inverse_BT1361,
395 oetf_inverse_BT2020,
396 oetf_inverse_BT2100_HLG,
397 oetf_inverse_BT2100_PQ,
398 oetf_inverse_DaVinciIntermediate,
399 oetf_inverse_H273_IEC61966_2,
400 oetf_inverse_H273_Log,
401 oetf_inverse_H273_LogSqrt,
402 oetf_SMPTE240M,
403 offset_YCbCr,
404 ootf,
405 ootf_BT2100_HLG,
406 ootf_BT2100_PQ,
407 ootf_inverse,
408 ootf_inverse_BT2100_HLG,
409 ootf_inverse_BT2100_PQ,
410 primaries_whitepoint,
411 sRGB_to_XYZ,
412)
414__all__ = [
415 "COLOURSPACE_MODELS",
416 "COLOURSPACE_MODELS_AXIS_LABELS",
417 "COLOURSPACE_MODELS_DOMAIN_RANGE_SCALE_1_TO_REFERENCE",
418 "Iab_to_XYZ",
419 "Jab_to_JCh",
420 "JCh_to_Jab",
421 "XYZ_to_Iab",
422]
423__all__ += [
424 "CAM02LCD_to_JMh_CIECAM02",
425 "CAM02LCD_to_XYZ",
426 "CAM02SCD_to_JMh_CIECAM02",
427 "CAM02SCD_to_XYZ",
428 "CAM02UCS_to_JMh_CIECAM02",
429 "CAM02UCS_to_XYZ",
430 "JMh_CIECAM02_to_CAM02LCD",
431 "JMh_CIECAM02_to_CAM02SCD",
432 "JMh_CIECAM02_to_CAM02UCS",
433 "XYZ_to_CAM02LCD",
434 "XYZ_to_CAM02SCD",
435 "XYZ_to_CAM02UCS",
436]
437__all__ += [
438 "CAM16LCD_to_JMh_CAM16",
439 "CAM16LCD_to_XYZ",
440 "CAM16SCD_to_JMh_CAM16",
441 "CAM16SCD_to_XYZ",
442 "CAM16UCS_to_JMh_CAM16",
443 "CAM16UCS_to_XYZ",
444 "JMh_CAM16_to_CAM16LCD",
445 "JMh_CAM16_to_CAM16SCD",
446 "JMh_CAM16_to_CAM16UCS",
447 "XYZ_to_CAM16LCD",
448 "XYZ_to_CAM16SCD",
449 "XYZ_to_CAM16UCS",
450]
451__all__ += [
452 "XYZ_to_xy",
453 "XYZ_to_xyY",
454 "xy_to_xyY",
455 "xy_to_XYZ",
456 "xyY_to_xy",
457 "xyY_to_XYZ",
458]
459__all__ += [
460 "Lab_to_XYZ",
461 "XYZ_to_Lab",
462]
463__all__ += [
464 "CIE1976UCS_to_XYZ",
465 "Luv_to_uv",
466 "Luv_to_XYZ",
467 "Luv_uv_to_xy",
468 "XYZ_to_CIE1976UCS",
469 "XYZ_to_Luv",
470 "uv_to_Luv",
471 "xy_to_Luv_uv",
472]
473__all__ += [
474 "CIE1960UCS_to_XYZ",
475 "UCS_to_uv",
476 "UCS_to_XYZ",
477 "UCS_uv_to_xy",
478 "XYZ_to_CIE1960UCS",
479 "XYZ_to_UCS",
480 "uv_to_UCS",
481 "xy_to_UCS_uv",
482]
483__all__ += [
484 "UVW_to_XYZ",
485 "XYZ_to_UVW",
486]
487__all__ += [
488 "DIN99_to_Lab",
489 "DIN99_to_XYZ",
490 "Lab_to_DIN99",
491 "XYZ_to_DIN99",
492]
493__all__ += [
494 "HDR_CIELAB_METHODS",
495 "XYZ_to_hdr_CIELab",
496 "hdr_CIELab_to_XYZ",
497]
498__all__ += [
499 "Hunter_Lab_to_XYZ",
500 "XYZ_to_Hunter_Lab",
501 "XYZ_to_K_ab_HunterLab1966",
502]
503__all__ += [
504 "Hunter_Rdab_to_XYZ",
505 "XYZ_to_Hunter_Rdab",
506]
507__all__ += [
508 "ICaCb_to_XYZ",
509 "XYZ_to_ICaCb",
510]
511__all__ += [
512 "IgPgTg_to_XYZ",
513 "XYZ_to_IgPgTg",
514]
515__all__ += [
516 "IPT_hue_angle",
517 "IPT_to_XYZ",
518 "XYZ_to_IPT",
519]
520__all__ += [
521 "IZAZBZ_METHODS",
522 "Izazbz_to_XYZ",
523 "Jzazbz_to_XYZ",
524 "XYZ_to_Izazbz",
525 "XYZ_to_Jzazbz",
526]
527__all__ += [
528 "HDR_IPT_METHODS",
529 "XYZ_to_hdr_IPT",
530 "hdr_IPT_to_XYZ",
531]
532__all__ += [
533 "Oklab_to_XYZ",
534 "XYZ_to_Oklab",
535]
536__all__ += [
537 "OSA_UCS_to_XYZ",
538 "XYZ_to_OSA_UCS",
539]
540__all__ += [
541 "ProLab_to_XYZ",
542 "XYZ_to_ProLab",
543]
544__all__ += [
545 "IPT_Ragoo2021_to_XYZ",
546 "XYZ_to_IPT_Ragoo2021",
547]
548__all__ += [
549 "XYZ_to_sUCS",
550 "sUCS_chroma",
551 "sUCS_hue_angle",
552 "sUCS_Iab_to_sUCS_ICh",
553 "sUCS_ICh_to_sUCS_Iab",
554 "sUCS_to_XYZ",
555]
556__all__ += [
557 "LMS_to_Yrg",
558 "XYZ_to_Yrg",
559 "Yrg_to_LMS",
560 "Yrg_to_XYZ",
561]
562__all__ += [
563 "CCS_ILLUMINANT_POINTER_GAMUT",
564 "CCS_POINTER_GAMUT_BOUNDARY",
565 "DATA_MACADAM_1942_ELLIPSES",
566 "DATA_POINTER_GAMUT_VOLUME",
567]
568__all__ += [
569 "BT2100_HLG_EOTF_INVERSE_METHODS",
570 "BT2100_HLG_EOTF_METHODS",
571 "BT2100_HLG_OOTF_INVERSE_METHODS",
572 "BT2100_HLG_OOTF_METHODS",
573 "CCTF_DECODINGS",
574 "CCTF_ENCODINGS",
575 "COLOUR_PRIMARIES_ITUTH273",
576 "EOTF_INVERSES",
577 "EOTFS",
578 "LOG3G10_DECODING_METHODS",
579 "LOG3G10_ENCODING_METHODS",
580 "LOG_DECODINGS",
581 "LOG_ENCODINGS",
582 "MATRIX_COEFFICIENTS_ITUTH273",
583 "OETF_INVERSES",
584 "OETFS",
585 "OOTF_INVERSES",
586 "OOTFS",
587 "RGB_COLOURSPACE_ACES2065_1",
588 "RGB_COLOURSPACE_ACESCC",
589 "RGB_COLOURSPACE_ACESCCT",
590 "RGB_COLOURSPACE_ACESCG",
591 "RGB_COLOURSPACE_ACESPROXY",
592 "RGB_COLOURSPACE_ADOBE_RGB1998",
593 "RGB_COLOURSPACE_ADOBE_WIDE_GAMUT_RGB",
594 "RGB_COLOURSPACE_APPLE_RGB",
595 "RGB_COLOURSPACE_ARRI_WIDE_GAMUT_3",
596 "RGB_COLOURSPACE_ARRI_WIDE_GAMUT_4",
597 "RGB_COLOURSPACE_BEST_RGB",
598 "RGB_COLOURSPACE_BETA_RGB",
599 "RGB_COLOURSPACE_BLACKMAGIC_WIDE_GAMUT",
600 "RGB_COLOURSPACE_BT470_525",
601 "RGB_COLOURSPACE_BT470_625",
602 "RGB_COLOURSPACE_BT709",
603 "RGB_COLOURSPACE_BT2020",
604 "RGB_COLOURSPACE_CIE_RGB",
605 "RGB_COLOURSPACE_CINEMA_GAMUT",
606 "RGB_COLOURSPACE_COLOR_MATCH_RGB",
607 "RGB_COLOURSPACE_DAVINCI_WIDE_GAMUT",
608 "RGB_COLOURSPACE_DCDM_XYZ",
609 "RGB_COLOURSPACE_DCI_P3",
610 "RGB_COLOURSPACE_DCI_P3_P",
611 "RGB_COLOURSPACE_DISPLAY_P3",
612 "RGB_COLOURSPACE_DJI_D_GAMUT",
613 "RGB_COLOURSPACE_DON_RGB_4",
614 "RGB_COLOURSPACE_DRAGON_COLOR",
615 "RGB_COLOURSPACE_DRAGON_COLOR_2",
616 "RGB_COLOURSPACE_EBU_3213_E",
617 "RGB_COLOURSPACE_ECI_RGB_V2",
618 "RGB_COLOURSPACE_EKTA_SPACE_PS_5",
619 "RGB_COLOURSPACE_ERIMM_RGB",
620 "RGB_COLOURSPACE_F_GAMUT",
621 "RGB_COLOURSPACE_F_GAMUT_C",
622 "RGB_COLOURSPACE_FILMLIGHT_E_GAMUT",
623 "RGB_COLOURSPACE_FILMLIGHT_E_GAMUT_2",
624 "RGB_COLOURSPACE_G18_REC709_SCENE",
625 "RGB_COLOURSPACE_G22_ADOBERGB_SCENE",
626 "RGB_COLOURSPACE_G22_AP1_SCENE",
627 "RGB_COLOURSPACE_G22_REC709_SCENE",
628 "RGB_COLOURSPACE_H273_22_UNSPECIFIED",
629 "RGB_COLOURSPACE_H273_GENERIC_FILM",
630 "RGB_COLOURSPACE_LIN_ADOBERGB_SCENE",
631 "RGB_COLOURSPACE_LIN_CIEXYZD65_SCENE",
632 "RGB_COLOURSPACE_LIN_P3D65_SCENE",
633 "RGB_COLOURSPACE_LIN_REC709_SCENE",
634 "RGB_COLOURSPACE_LIN_REC2020_SCENE",
635 "RGB_COLOURSPACE_MAX_RGB",
636 "RGB_COLOURSPACE_N_GAMUT",
637 "RGB_COLOURSPACE_NTSC1953",
638 "RGB_COLOURSPACE_NTSC1987",
639 "RGB_COLOURSPACE_P3_D65",
640 "RGB_COLOURSPACE_PAL_SECAM",
641 "RGB_COLOURSPACE_PLASA_ANSI_E154",
642 "RGB_COLOURSPACE_PROPHOTO_RGB",
643 "RGB_COLOURSPACE_PROTUNE_NATIVE",
644 "RGB_COLOURSPACE_RED_COLOR",
645 "RGB_COLOURSPACE_RED_COLOR_2",
646 "RGB_COLOURSPACE_RED_COLOR_3",
647 "RGB_COLOURSPACE_RED_COLOR_4",
648 "RGB_COLOURSPACE_RED_WIDE_GAMUT_RGB",
649 "RGB_COLOURSPACE_RIMM_RGB",
650 "RGB_COLOURSPACE_ROMM_RGB",
651 "RGB_COLOURSPACE_RUSSELL_RGB",
652 "RGB_COLOURSPACE_S_GAMUT",
653 "RGB_COLOURSPACE_S_GAMUT3",
654 "RGB_COLOURSPACE_S_GAMUT3_CINE",
655 "RGB_COLOURSPACE_SHARP_RGB",
656 "RGB_COLOURSPACE_SMPTE_240M",
657 "RGB_COLOURSPACE_SMPTE_C",
658 "RGB_COLOURSPACE_SRGB_AP1_SCENE",
659 "RGB_COLOURSPACE_SRGB_P3D65_SCENE",
660 "RGB_COLOURSPACE_SRGB_REC709_SCENE",
661 "RGB_COLOURSPACE_V_GAMUT",
662 "RGB_COLOURSPACE_VENICE_S_GAMUT3",
663 "RGB_COLOURSPACE_VENICE_S_GAMUT3_CINE",
664 "RGB_COLOURSPACE_XTREME_RGB",
665 "RGB_COLOURSPACES",
666 "RGB_COLOURSPACES_TEXTURE_ASSETS_AND_CG_RENDERING_CIF",
667 "TRANSFER_CHARACTERISTICS_ITUTH273",
668 "WEIGHTS_YCBCR",
669 "CMY_to_CMYK",
670 "CMY_to_RGB",
671 "CMYK_to_CMY",
672 "CV_range",
673 "HCL_to_RGB",
674 "HSL_to_RGB",
675 "HSV_to_RGB",
676 "ICtCp_to_RGB",
677 "ICtCp_to_XYZ",
678 "IHLS_to_RGB",
679 "Prismatic_to_RGB",
680 "RGB_Colourspace",
681 "RGB_COLOURSPACE_sRGB",
682 "RGB_luminance",
683 "RGB_luminance_equation",
684 "RGB_to_CMY",
685 "RGB_to_HCL",
686 "RGB_to_HSL",
687 "RGB_to_HSV",
688 "RGB_to_ICtCp",
689 "RGB_to_IHLS",
690 "RGB_to_Prismatic",
691 "RGB_to_RGB",
692 "RGB_to_XYZ",
693 "RGB_to_YCbCr",
694 "RGB_to_YcCbcCrc",
695 "RGB_to_YCoCg",
696 "XYZ_to_ICtCp",
697 "XYZ_to_RGB",
698 "XYZ_to_sRGB",
699 "YCbCr_to_RGB",
700 "YcCbcCrc_to_RGB",
701 "YCoCg_to_RGB",
702 "cctf_decoding",
703 "cctf_decoding_ProPhotoRGB",
704 "cctf_decoding_RIMMRGB",
705 "cctf_decoding_ROMMRGB",
706 "cctf_encoding",
707 "cctf_encoding_ProPhotoRGB",
708 "cctf_encoding_RIMMRGB",
709 "cctf_encoding_ROMMRGB",
710 "chromatically_adapted_primaries",
711 "describe_video_signal_colour_primaries",
712 "describe_video_signal_matrix_coefficients",
713 "describe_video_signal_transfer_characteristics",
714 "eotf",
715 "eotf_BT1886",
716 "eotf_BT2100_HLG",
717 "eotf_BT2100_PQ",
718 "eotf_DCDM",
719 "eotf_DICOMGSDF",
720 "eotf_H273_ST428_1",
721 "eotf_inverse",
722 "eotf_inverse_BT1886",
723 "eotf_inverse_BT2100_HLG",
724 "eotf_inverse_BT2100_PQ",
725 "eotf_inverse_DCDM",
726 "eotf_inverse_DICOMGSDF",
727 "eotf_inverse_H273_ST428_1",
728 "eotf_inverse_sRGB",
729 "eotf_inverse_ST2084",
730 "eotf_SMPTE240M",
731 "eotf_sRGB",
732 "eotf_ST2084",
733 "exponent_function_basic",
734 "exponent_function_monitor_curve",
735 "full_to_legal",
736 "gamma_function",
737 "legal_to_full",
738 "linear_function",
739 "log_decoding",
740 "log_decoding_ACEScc",
741 "log_decoding_ACEScct",
742 "log_decoding_ACESproxy",
743 "log_decoding_AppleLogProfile",
744 "log_decoding_ARRILogC3",
745 "log_decoding_ARRILogC4",
746 "log_decoding_CanonLog",
747 "log_decoding_CanonLog2",
748 "log_decoding_CanonLog3",
749 "log_decoding_Cineon",
750 "log_decoding_DJIDLog",
751 "log_decoding_ERIMMRGB",
752 "log_decoding_FilmicPro6",
753 "log_decoding_FilmLightTLog",
754 "log_decoding_FLog",
755 "log_decoding_FLog2",
756 "log_decoding_LLog",
757 "log_decoding_Log2",
758 "log_decoding_Log3G10",
759 "log_decoding_Log3G12",
760 "log_decoding_MiLog",
761 "log_decoding_NLog",
762 "log_decoding_Panalog",
763 "log_decoding_PivotedLog",
764 "log_decoding_Protune",
765 "log_decoding_REDLog",
766 "log_decoding_REDLogFilm",
767 "log_decoding_SLog",
768 "log_decoding_SLog2",
769 "log_decoding_SLog3",
770 "log_decoding_ViperLog",
771 "log_decoding_VLog",
772 "log_encoding",
773 "log_encoding_ACEScc",
774 "log_encoding_ACEScct",
775 "log_encoding_ACESproxy",
776 "log_encoding_AppleLogProfile",
777 "log_encoding_ARRILogC3",
778 "log_encoding_ARRILogC4",
779 "log_encoding_CanonLog",
780 "log_encoding_CanonLog2",
781 "log_encoding_CanonLog3",
782 "log_encoding_Cineon",
783 "log_encoding_DJIDLog",
784 "log_encoding_ERIMMRGB",
785 "log_encoding_FilmicPro6",
786 "log_encoding_FilmLightTLog",
787 "log_encoding_FLog",
788 "log_encoding_FLog2",
789 "log_encoding_LLog",
790 "log_encoding_Log2",
791 "log_encoding_Log3G10",
792 "log_encoding_Log3G12",
793 "log_encoding_MiLog",
794 "log_encoding_NLog",
795 "log_encoding_Panalog",
796 "log_encoding_PivotedLog",
797 "log_encoding_Protune",
798 "log_encoding_REDLog",
799 "log_encoding_REDLogFilm",
800 "log_encoding_SLog",
801 "log_encoding_SLog2",
802 "log_encoding_SLog3",
803 "log_encoding_ViperLog",
804 "log_encoding_VLog",
805 "logarithmic_function_basic",
806 "logarithmic_function_camera",
807 "logarithmic_function_quasilog",
808 "matrix_RGB_to_RGB",
809 "matrix_YCbCr",
810 "normalised_primary_matrix",
811 "oetf",
812 "oetf_ARIBSTDB67",
813 "oetf_BlackmagicFilmGeneration5",
814 "oetf_BT601",
815 "oetf_BT709",
816 "oetf_BT1361",
817 "oetf_BT2020",
818 "oetf_BT2100_HLG",
819 "oetf_BT2100_PQ",
820 "oetf_DaVinciIntermediate",
821 "oetf_H273_IEC61966_2",
822 "oetf_H273_Log",
823 "oetf_H273_LogSqrt",
824 "oetf_inverse",
825 "oetf_inverse_ARIBSTDB67",
826 "oetf_inverse_BlackmagicFilmGeneration5",
827 "oetf_inverse_BT601",
828 "oetf_inverse_BT709",
829 "oetf_inverse_BT1361",
830 "oetf_inverse_BT2020",
831 "oetf_inverse_BT2100_HLG",
832 "oetf_inverse_BT2100_PQ",
833 "oetf_inverse_DaVinciIntermediate",
834 "oetf_inverse_H273_IEC61966_2",
835 "oetf_inverse_H273_Log",
836 "oetf_inverse_H273_LogSqrt",
837 "oetf_SMPTE240M",
838 "offset_YCbCr",
839 "ootf",
840 "ootf_BT2100_HLG",
841 "ootf_BT2100_PQ",
842 "ootf_inverse",
843 "ootf_inverse_BT2100_HLG",
844 "ootf_inverse_BT2100_PQ",
845 "primaries_whitepoint",
846 "sRGB_to_XYZ",
847]
849# Programmatically defining the colourspace models polar conversions.
850COLOURSPACE_MODELS_POLAR_CONVERSIONS = (
851 ("hdr_CIELab", "hdr_CIELCHab"),
852 ("hdr_IPT", "hdr_ICH"),
853 ("Hunter_Lab", "Hunter_LCHab"),
854 ("Hunter_Rdab", "Hunter_RdCHab"),
855 ("ICaCb", "ICHab"),
856 ("ICtCp", "ICHtp"),
857 ("IPT", "ICH"),
858 ("IPT_Ragoo2021", "ICH_Ragoo2021"),
859 ("IgPgTg", "IgCHpt"),
860 ("Izazbz", "IzCHab"),
861 ("Jzazbz", "JzCHab"),
862 ("Lab", "LCHab"),
863 ("Luv", "LCHuv"),
864 ("Oklab", "Oklch"),
865 ("ProLab", "ProLCHab"),
866 ("sUCS", "sUCSICH"),
867)
869_DOCSTRING_JAB_TO_JCH = """
870Convert from *{Jab}* colourspace to *{JCh}* colourspace.
872This is a convenient definition wrapping :func:`colour.models.Jab_to_JCh`
873definition.
875Parameters
876----------
877Jab
878 *{Jab}* colourspace array.
880Returns
881-------
882:class:`numpy.ndarray`
883 *{JCh}* colourspace array.
884"""
886_DOCSTRING_JCH_TO_JAB = """
887Convert from *{JCh}* colourspace to *{Jab}* colourspace.
889This is a convenient definition wrapping :func:`colour.models.JCh_to_Jab`
890definition.
892Parameters
893----------
894JCh
895 *{JCh}* colourspace array.
897Returns
898-------
899:class:`numpy.ndarray`
900 *{Jab}* colourspace array.
901"""
903for _Jab, _JCh in COLOURSPACE_MODELS_POLAR_CONVERSIONS:
904 # Derive the correct annotation scale from the source model's XYZ_to_Jab function
905 _scale = 1 # Default scale for most models
906 _XYZ_to_Jab_name = f"XYZ_to_{_Jab}"
907 _module = sys.modules["colour.models"]
909 if hasattr(_module, _XYZ_to_Jab_name):
910 _XYZ_to_Jab_callable = getattr(_module, _XYZ_to_Jab_name)
911 _metadata = get_domain_range_scale_metadata(_XYZ_to_Jab_callable)
912 _range_scale = _metadata.get("range")
914 # If the source model uses scale 100, the polar form should too
915 if _range_scale == 100:
916 _scale = 100
918 # Create Jab_to_JCh wrapper with correct annotation
919 name = f"{_Jab}_to_{_JCh}"
920 _callable = copy_definition(Jab_to_JCh, name)
921 _callable.__doc__ = _DOCSTRING_JAB_TO_JCH.format(Jab=_Jab, JCh=_JCh)
922 # Update the return annotation with the derived scale
923 _callable.__annotations__["return"] = Annotated[NDArrayFloat, (_scale, _scale, 360)]
924 setattr(_module, name, _callable)
925 __all__.append(name)
927 # Create JCh_to_Jab wrapper with correct annotation
928 name = f"{_JCh}_to_{_Jab}"
929 _callable = copy_definition(JCh_to_Jab, name)
930 _callable.__doc__ = _DOCSTRING_JCH_TO_JAB.format(JCh=_JCh, Jab=_Jab)
931 # Update the parameter annotation with the derived scale
932 _parameter = next(iter(_callable.__annotations__.keys()))
933 _callable.__annotations__[_parameter] = Annotated[
934 NDArrayFloat, (_scale, _scale, 360)
935 ]
936 setattr(_module, name, _callable)
937 __all__.append(name)
939del (
940 _DOCSTRING_JAB_TO_JCH,
941 _DOCSTRING_JCH_TO_JAB,
942 _JCh,
943 _Jab,
944 _callable,
945 _module,
946 _scale,
947 _XYZ_to_Jab_name,
948 _metadata,
949 _range_scale,
950 _XYZ_to_Jab_callable,
951 _parameter,
952)
954__all__ += ["COLOURSPACE_MODELS_POLAR"]