颜色模型工具
colorio的Python项目详细描述
用于颜色模型的工具。
colorio中的所有方法都是完全矢量化的。
颜色空间
所有颜色空间都实现这两种方法
vals=colorspace.from_xyz100(xyz)xyz=colorspace.to_xyz100(vals)
用于从XYZ100转换到XYZ100。添加新的颜色空间就像 编写提供这两种方法的类。
实现了以下颜色空间:
- XYZ(
colorio.XYZ()
) - xyY(
colorio.XYY()
) - Linear SRGB(
colorio.SrgbLinear()
) 这个类有两个附加方法
用于从标准RGB转换到标准RGB。from_srgb1() to_srgb1()
- HSL and HSV(
colorio.HSL()
,colorio.HSV()
) 这些类有两个方法
用于从标准RGB转换到标准RGB。from_srgb1() to_srgb1()
- CIELAB(
colorio.CIELAB()
) - CIELUV(
colorio.CIELUV()
) - ICtCp(
colorio.ICtCp()
) - IPT
(
colorio.IPT()
) - CIECAM02 / CAM02-UCS
importcolorioL_A=64/numpy.pi/5ciecam02=colorio.CIECAM02(0.69,20,L_A)cam02=colorio.CAM02('UCS',0.69,20,L_A)
该实现包含对ciecam02规范的一些改进(参见 here)。 - CAM16 / CAM16-UCS
L_A=64/numpy.pi/5cam16=colorio.CAM16(0.69,20,L_A)cam16ucs=colorio.CAM16UCS(0.69,20,L_A)
与cam16相比,该实现包含了一些改进 规格(见here)。 - Jzazbz
(
colorio.JzAzBz()
)
工具
colorio为分析和可视化颜色空间提供了许多有用的工具。
可视化srgb范围
srgb色域是srgb空间中一个完美的立方体,在翻译时会呈现出奇怪的形状。 进入其他颜色空间。上图显示了xyz空间中的srgb色域。形象 数据是用
importcoloriocolorspace=colorio.CIELAB()colorspace.save_srgb_gamut(colorspace,"srgb.vtk",n=50,cut_000=False)# The HDR (Rec.2100, Rec.2020) gamut works the same waycolorspace.save_hdr_gamut(colorspace,"hdr.vtk",n=50,cut_000=False)
然后可以打开VTK文件 例如,在Paraview中,以下说明适用:
- 在paraview中打开文件,并在properties选项卡中执行以下步骤 在左边。
- 按apply按钮。
- 在着色部分下,将
Solid Color
更改为srgb
。 - 如有必要,按下搜索区域右侧的齿轮按钮以激活 高级选项。
- 在标量着色部分下,取消选中映射标量。
更多图像是in the gh-pages branch。
数据可以用 meshio。(您可能需要安装其他 某些格式的软件包。)
可视化可见色域
同上,但在给定的光源下,色域是可见的。
colorspace=colorio.XYZ()illuminant=colorio.illuminants.d65()observer=colorio.observers.cie_1931_2()colorspace.save_visible_gamut(colorspace,observer,illuminant,"visible.vtk")
色域显示为灰色,因为srgb屏幕无论如何都无法显示颜色。
XY色域
用X{A25}和SRGB颜色显示XY中的经典可见色域(最大值) 光度)。
colorio.show_xy_gamut()
显示实验数据
colorio包含了大量的实验数据集,其中一些可以用来评估 颜色空间的某些性质。
碎石
著名的碎石椭圆(来自this article)可以用
colorio.show_macadam(scaling=10,plot_filter_positions=False,plot_standard_deviations=False)
艾布纳费尔柴尔德
例如
colorspace=colorio.JzAzBz()colorspace.show_ebner_fairchild()
显示azbz平面中the Ebner-Fairchild experiments的恒定色调数据 在jzazbz颜色空间中。(理想情况下,所有颜色在一个 坐在一条线上。)
洪伯纳斯
同样适用于Hung-Berns:
colorspace=colorio.JzAzBz()colorspace.show_hung_berns()
肖等人
同样适用于Xiao et al.:
colorspace=colorio.CIELAB()colorspace.show_xiao()
孟塞尔
colorspace=colorio.CIELUV()colorspace.show_munsell(V=5)
要简单地检索xyy格式的munsell数据,请使用
h,V,C,xyy=colorio.get_munsell_data()
色差
任何空间的色差都可以用colorio.delta(a, b)
来计算。
安装
颜色是available from the Python Package Index, 所以只要使用
pip3 install colorio --user
安装。
测试
要运行测试,只需签出此存储库并运行
pytest
许可证
colorio发布在MIT license下。