- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个波长(x 轴)和强度(y 轴,采用可以具有不同范围的任意单位的(光谱剖面)数据集...)
我想将此数字数据转换为图形 View ,如下图底部所示。
但是,我从未在 Delphi (2010) 中使用 Canvas、TImage、位图或任何将其显示到屏幕上的方式做过任何事情。
(显然,如果我可以将数据转换为一行图像像素,那么我只需根据所需的图像高度复制该行多次即可。)
任何人都可以为我指出正确的方向或提供遍历 x,y 值以创建彩色图像的示例代码吗?我希望我的解决方案能够让我(或用户)调整级别(对比度、亮度)。
提前致谢。
相关SO帖子:Algorithm to convert any positive integer to an RGB value
最佳答案
嗯,在我看来,你的波长是色调,而你的强度是亮度的另一种说法。如果您有a model that represents colors in terms of hue and brightness,获得正确的颜色将是一项非常简单的任务。以及一种在它和 RGB 之间转换的方法...:-)
显示颜色实际上非常简单。您可以在表单上使用标准 TImage 组件。一旦计算出某个位置的 TColor 值,您就可以使用
进行设置image.Canvas.Pixels[x, y] := aColor;
编辑:如何将波长映射到色调:
这有点棘手,因为光谱的左侧似乎是紫色,右侧是红色。在 HSL 中,红色位于 0 位置。您必须反转 X 轴,因此红色为 0,紫色为高。您可以通过基本上说 value := MAX_VALUE - value;
然后你需要校准线路。将全红色对应的波长设置为 0,将远蓝色端设置为其对应的色调。 (如果您可以将波长转换为 TColor,然后将 TColor 转换为 HSL,那么计算起来应该不难。)这就是您的范围,您需要标准化所有波长以适应该范围。
只是看了一下,在我看来,示例光谱的左端在色轮上的色调约为 270 度,相当于 0--255 范围内的 192。因此,将光谱从红色变为蓝色——再次记住,红色是低值,而不是高值——并将其标准化到范围 0--192(或任何实际的高值),然后你就得到了 H 值。
此外,如果您的颜色线右端有一些颜色稍微超出全红色到紫色,那么您将得到负色调,该色调会回绕到 255。
关于delphi - 如何从 TColor 和强度创建屏幕图像(在 Delphi 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3710485/
我正在开发一个录音机应用程序。我想知道在录制音频时有什么方法可以找到音频的强度。我不想将录音保存在任何地方。我只想向用户展示麦克风捕捉到的声音是否大于预定义的阈值。 假设如果声音低于 2 分贝,它应该
我正在尝试让一个基本服务器(从 Beginning Python 复制)来发送一个 str。 错误: c.send( "XXX" ) TypeError: must be bytes or buffe
我陷入了一个问题,不知道去哪里看。我需要增加图像中特定颜色的强度,例如 R、G 或蓝色。当我这样做时,某些颜色无法正确呈现。 下面是我为测试拍摄的图像: 现在当我像绿色一样增加时: A = Color
我不希望我的背景图片太模糊。没有调整模糊强度的属性吗? let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Light) blurEffect
我使用 OpenCV 2.4.11+Qt 并尝试制作视频并更改红色/蓝色或绿色 channel 的强度,但没有找到任何功能或设置来执行此操作。有谁知道如何做到这一点? 最佳答案 如果您只想更改一个特定
当我有 x、y、强度时,我不知道如何创建热图(或等高线图)。我有一个看起来像这样的文件: 0,1,6 0,2,10 .... 到目前为止: with open('eye_.txt', 'r') as
有谁有一些可以在 iPhone 应用程序中使用的代码,让我可以看到 wifi 的强度吗?我有一个连接密集型操作,并且希望它们不在不稳定区域 最佳答案 这可能会帮助您走上正确的道路...... http
当从 RGB 转换为灰度时,据说应该对 R、G 和 B channel 应用特定的权重。这些权重是:0.2989、0.5870、0.1140。 据说这是因为人类对这三种颜色的感知/感受不同。有时也有人
Eclipse SSH key 生成屏幕(常规 -> 网络连接 -> SSH2)生成 1024 位 RSA key ,该 key 太弱而无法使用 ( http://news.netcraft.com/
当从 RGB 转换为灰度时,据说应该对 R、G 和 B channel 应用特定的权重。这些权重是:0.2989、0.5870、0.1140。 据说这是因为人类对这三种颜色的感知/感受不同。有时也有人
我们的网络应用程序使用 the Vibrate API对于微妙的按钮按下效果: window.navigator.vibrate(5); 但在我的新手机上,感觉不那么微妙,更像是我的手机正试图从我手中
我的应用程序应扫描周围的 Wifi 信号并列出网络名称及其 RSSI。 我在谷歌上找不到任何关于如何做的线索。有人可以举个例子或者至少指出其他地方我可以找到答案吗? 最佳答案 我认为这不可能!不管是
所以我的图像有一些黑点,它们看起来很简单,所以我想我可以创建一个亮度图,将其反转,然后将其应用到我的图像以消除黑点。然而,我所能找到的只有两种均衡方法:均衡整个图像(使用直方图)或将图像分割成深色和浅
我是一名优秀的程序员,十分优秀!