- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力思考如何将 ASTM E-308 应用于啤酒的 SRM 测量。我工作的问题领域要求我们首先通过转换为 Lab* 从 SRM 到 RGB(或 sRGB)进行适当的转换。似乎我用来创建啤酒配方的每个网站都有自己的从 SRM 到 RGB 的转换,这是有道理的,因为这是一个棘手的问题。也就是说,我希望编写一个开源 js 库来处理这个问题。
基本上,我使用此处描述的算法:https://www.homebrewtalk.com/forum/threads/on-the-calculation-of-srm-rgb-values-in-the-srgb-color-space.413581/#post-5232912
我认为这是对 E-308 算法的简化。我遇到困难的地方是该帖子 (http://wetnewf.org/pdfs/Brewing_articles/MOAWorkbook.xls) 中提到的电子表格对我来说意义不大。该帖子说要根据电子表格中的观察者 Angular 选择 XYZ 向量。如果我选择 10 度观察者 Angular ,那么我希望 XYZ 向量应该是:(82.82, 3.48, 61.86)。这是正确的吗?
现在,选择光源光谱也有些困惑。如果我想要光源 C(我认为是 6774K),我应该从该电子表格中提取哪些值以添加为光谱的组成部分?此外,如何计算这些组件?
我在色彩理论方面的背景知识有限,但我真正想要的是能够拥有一些输入标准,例如观察者 Angular 和光源色温,以及 SRM 值,并计算 L ab* 值。
最佳答案
这个问题确实需要一个可能不适合 Stack Overflow 格式的答案。
ASTM E308 本身是一个 50 页的复杂标准,其主体是关于从光谱分布到 CIE XYZ 三刺激值的转换。它还涉及到 CIE Lab 和 CIE Luv 的转换。
您链接的电子表格没有完全实现 ASTM E308,并且方便地使用积分方法进行 5 nm 测量间隔,而没有三色加权因子表,如果光谱数据经过带通校正,您在技术上需要这种表。这对于实际用途来说很好,但如果需要精度,了解 ASTM E308 非常严格是很重要的。
电子表格相当复杂,因为它似乎使用了 Augmented SRM用特征向量计算一百种左右的啤酒。
假设您要使用 ASBC method ,流程应该是这样的:
如果你不介意阅读 Python,我做了一个 Colab notebook使用 Colour并为 SRM 和路径长度的网格计算啤酒颜色:
import colour
import colour.plotting
import numpy as np
colour.utilities.describe_environment()
colour.plotting.colour_style()
ASBC_SHAPE = colour.SpectralShape(380, 780, 5)
OBSERVER = colour.CMFS['CIE 1964 10 Degree Standard Observer']
ILLUMINANT = colour.ILLUMINANTS_SDS['C']
ILLUMINANT_XY = colour.ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['C']
def beer_transmission_sd(SRM, path=1, shape=ASBC_SHAPE):
e = np.exp(1)
wl = shape.range()
values = np.exp(
-(SRM / 12.7) * (0.018747 * e**(-(wl - 430) / 13.374) + 0.98226 * e**
(-(wl - 430) / 80.514)) * path)
return colour.SpectralDistribution(
values, wl, name='Beer - SRM {0} - Path {1}'.format(SRM, path))
PATHS = np.linspace(10, 1, 10)
SRM = np.linspace(1, 50, 50)
XYZ = []
for i in PATHS:
for j in SRM:
XYZ.append(
colour.sd_to_XYZ(
beer_transmission_sd(i, j),
cmfs=OBSERVER,
illuminant=ILLUMINANT) / 100.0)
# The Lab values for CIE Illuminant C are computed here:
Lab = colour.XYZ_to_Lab(XYZ, ILLUMINANT_XY)
# But we will be going further :)
RGB = colour.XYZ_to_sRGB(XYZ, illuminant=ILLUMINANT_XY)
figure, axes = colour.plotting.plot_multi_colour_swatches(
[colour.plotting.ColourSwatch(RGB=np.clip(i, 0, 1)) for i in RGB],
columns=len(SRM),
**{
'standalone': False,
'x_label': 'SRM',
'y_label': 'Path (cm)',
'xtick.bottom': True,
'ytick.left': True,
})
# Ugly ticks massaging that will not be needed in future versions.
axes.set_xticks(SRM)
axes.set_yticks(-PATHS + 2)
axes.set_yticklabels(reversed(PATHS))
colour.plotting.render(standalone=True);
请注意,通过 Flask 在后端的容器中运行 Color 并从 Javascript 调用它应该很简单。我们有一个 advanced 3D visualiser如果您想走那条路,这可能会有所帮助。
关于javascript - 如何使用 E-308 作为算法将 SRM 转换为 L*a*b*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58722583/
我正在查看的示例位于 TurboPower FlashFiler 中数据库。 例如,它有一个文件 ffclcnst.rc,其中包含 FF_CLIENT_STRINGS RCDATA FFCLCNST.
我是 SAP UI5 (Html/JS) 的新手。我目前正在 SRM UI AddOn 环境中开发一个用于自由文本项目订购的表单。当用户填写完表单后,单击“提交”按钮,表单应消失,并且商品应转移回 S
为了安全,我需要使用 srm(安全删除)而不是 rm 来删除一些文件:http://en.wikipedia.org/wiki/Srm_%28Unix%29 我目前将 srm 设置为对我需要删除的任何
我正在尝试解决 JanuszInTheCasino problem其中一个测试用例 (test_one) 失败。我无法弄清楚问题所在。有什么想法吗? 代码如下: import java.util.Ma
我是博弈论的新手,只了解普通的 nim 游戏,您可以在无条件 的情况下从堆中移除石子,最后移除的玩家获胜。但是后来我在阅读时遇到了一个很好的问题 Game theory tutorial on Top
我正在做一个来自 this blog 的问题 One day, Jamie noticed that many English words only use the letters A and B.
下面这个问题是从 Topcoder 的 SRM 149 中提取的。即使在看了解决方案之后,我也不知道如何做这个问题。我已经尝试这个问题一个半小时了,然后又花了一个小时来解决这个问题,但我就是无法理解它
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
谁能解释一下这个问题的解决方法,你可以在这里查看问题: http://community.topcoder.com/stat?c=problem_statement&pm=13204和这里的解决方案:
我正在努力思考如何将 ASTM E-308 应用于啤酒的 SRM 测量。我工作的问题领域要求我们首先通过转换为 Lab* 从 SRM 到 RGB(或 sRGB)进行适当的转换。似乎我用来创建啤酒配方的
问题陈述是here 谁能帮我理解这个问题。问题陈述说, 选择了一个正整数“X”,每个袋子应该至少有“X”个水果,但在示例中他们选择了 0。这里很困惑。 此外,他们说“你从每个袋子里取出了‘X’个水果”
我正在查看随机的 TopCoder 问题,以便在比赛中尝试和改进,我今天遇到了一个问题,我希望得到一些意见。 问题陈述 Teddy 喜欢玫瑰,Tracy 喜欢百合。他们希望把这些花种在一个大花园里。
我是一名优秀的程序员,十分优秀!