我正在尝试使用R中的包munsellinterpol
实现从CIE XYZ颜色空间到Munsell规范的转换(据我所知,此包基于也可用的Kubelka-Munk工具箱,例如,在Matlab中)。
无论如何,从Munsell到XYZ的转换没有问题:
MunsellToXYZ("2.22Y 3/9")
# $X
# [1] 7.062125
# $Y
# [1] 6.391178
# $Z
# [1] -0.4203379
# $Status.ind
# [1] 1
然而,走另一条路似乎不起作用:
XYZtoMunsell(c(7.062125, 6.391178, -0.4203379))
# $Status.ind
# [1] 4
# $Status.dist
# NULL
# $Status.num
# NULL
此外,第一次调用该函数时,R输出一个奇怪的错误:
PLEASE NOTE: As of version 0.3-5, no degenerate (zero area)
regions are returned with the "Qt" option since the R
code removes them from the triangulation.
See help("delaunayn").
我知道这些函数利用某种优化来近似基于Munsell注释数据的良好映射。而且我确实意识到并非所有颜色都可能具有良好的Munsell映射。但我希望这些功能至少可以向前和向后工作,但情况似乎并非如此。
实际上,甚至文档中给出的示例都不起作用:
XYZtoMunsell(c(0.310897, 0.306510, 74.613450))
# $Status.ind
# [1] 4
# $Status.dist
# NULL
# $Status.num
# NULL
非常感谢任何帮助。 提前谢谢。
答案 0 :(得分:1)
2018年6月6日,munsellinterpol
软件包进行了大幅改写。
示例:
XYZtoMunsell(c(7.062125, 6.391178, -0.4203379))
XYZtoMunsell(c(0.310897, 0.306510, 74.613450))
sRGBtoMunsell(c(23,45,67))
现在工作正常(我检查了v。2.5-1)。
第一个:XYZ=c(7.062125, 6.391178, -0.4203379)
超出MacAdam限制,因为$Z<0$
等于$x+y>1$
。
但是XYZtoMunsell()
现在还不那么严格,因此不在乎。
已发布的Munsell HVC -> xy
查找表在$x+y>1$
处有很多点。