问题标签 [color-space]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
18362 浏览

algorithm - 创建色轮的功能

这是我多次伪解决的问题,但从未完全找到解决方案。

问题是想出一种方法来生成N颜色,尽可能区分N参数在哪里。

0 投票
4 回答
65094 浏览

colors - BGR色彩空间到底是什么?

RGB 颜色由三个分量组成:红色 (0-255)、绿色 (0-255) 和蓝色 (0-255)。

BGR色彩空间到底是什么?它与 RGB 颜色空间有何不同?

0 投票
1 回答
5941 浏览

java - 如何在 Java 中设置 icc 颜色配置文件并更改颜色空间

首先,我想说我不是图像处理专家。

我想将图像色彩空间从一个转换到另一个,并同时更改 icc 颜色配置文件。我设法使用 JMagick(ImageMagick Java 端口)来做到这一点,但在纯 Java 中没有办法(即使使用 JAI)。

0 投票
6 回答
13078 浏览

algorithm - 生成独特的颜色

我想将一些数据绘制到纹理中:一行中的许多项目。它们不是按顺序创建的,而且它们的大小可能都不同(想想内存堆)。每个数据项都是一个小矩形,我希望能够将它们区分开来,所以我希望它们中的每一个都具有独特的颜色。

现在我可以使用 rand() 生成 RGB 值并希望它们都不同,但我怀疑我不会在 RGB 空间中得到良好的分布。还有比这更好的方法吗?例如,在它们(几乎)重复之前循环不同颜色的好方法是什么?

颜色不必与项目中的任何数据匹配。我只是希望能够查看许多值并看到它们是不同的,因为它们是相邻的。

我可以弄清楚一些事情,但我认为这是一个有趣的问题。:)

0 投票
3 回答
2703 浏览

python - 如何隔离图像中的单一颜色

我正在使用 python OpenCV 绑定,目前我尝试隔离颜色范围。这意味着我想过滤掉所有不带红色的东西。

我试图只采用红色通道,但这也包括图像中的空白。

有什么好的方法可以做到这一点?

0 投票
1 回答
1763 浏览

cocoa - 如何在 Cocoa Touch 中将 RGB 转换为 HSV?

我想使用 HSV 而不是 RGB 设置标签的背景颜色。如何将其实现到代码中?

代码:

0 投票
1 回答
1738 浏览

imagemagick - 在 Imagemagick 中模拟 Photoshop 的饱和度变化

在 Photoshop 中,您可以使用三个滑块调整图像的色调、饱和度和亮度。ImageMagick 你可以调节亮度、饱和度和色调。

正确地最小化饱和度会在两个程序中生成黑白图像。

最大化饱和度看起来很接近,但 ImageMagick 似乎可以柔化一些溢出的边缘,而 Photoshop 会暴露更多的压缩伪影。

如何从 ImageMagick 或其他命令行工具中准确再现 Photoshop 的饱和度变化。

0 投票
4 回答
3044 浏览

c# - 如何在 C# 中读取和修改图像的颜色空间

我正在从 jpg 文件加载位图。如果图像不是 24 位 RGB,我想转换它。转换应该相当快。我正在加载的图像非常大(9000*9000 像素,压缩大小为 40-50MB)。如何才能做到这一点?

顺便说一句:如果可能的话,我不想使用任何外部库。但是,如果您知道执行最常见的成像任务的开源实用程序类,我会很高兴听到它。提前致谢。

0 投票
5 回答
7904 浏览

.net - 在 Windows (.Net) 上转换 JPEG 颜色空间(Adobe RGB 到 sRGB)

我需要从大照片中生成缩略图和中等大小的图像。这些较小的照片用于在在线画廊中展示。许多摄影师使用 Adob​​e RGB 提交 JPEG 图像。我想对所有缩略图和中等大小的图像使用 sRGB

我正在使用 dotnet (asp.net) 并且需要一种将 Adob​​e RGB 转换为 sRGB 而不损失任何质量的方法。

0 投票
7 回答
27813 浏览

algorithm - 是否有一种颜色混合算法可以像混合真实颜色一样工作?

RGB颜色的普通混合与绘画的混合颜色有很大的不同,它是光的混合而不是颜料的混合。

例如:

(应该是蓝色+黄色=绿色)

是否有任何已知的颜色混合算法可以像混合真实颜色一样工作?


我的方法

我已经尝试过以下操作:

将两种颜色转换为 HSV并混合色调(乘以从饱和度计算的系数),以及饱和度和值通道的简单平均值。然后我计算了两种颜色的平均亮度,并调整了生成的颜色以匹配这个亮度。这工作得很好,但色调混合有时是错误的,例如:

我发现有时我需要将色调值移动 360°(当色调之间的差异大于 180° 时)。

但是这种转变也不是很好,例如:

(Hue 179 + Red) 和 (Hue 181 + Red) 产生两种完全不同的颜色。


然后我尝试了 CIE Lab 色彩空间(如在 Photoshop 中),它旨在更接近人类感知颜色的方式。

我对每个对应的两个通道只使用了一个简单的平均值,但结果并不令人满意,例如,我从蓝色 (98, -16, 93) 和黄色 (30, 68,-112)。这些系数取自 Photoshop。

也许如果我使用一些不同于平均水平的操作,它可以工作,但我不知道是什么。


CMYK 也不起作用,结果就像在 RGB 或 LAB 中一样。


似乎在任何这些色彩空间中的微不足道的加色或减色混合都不会产生自然的结果。


工作实施

Krita – 绘画混音器

光栅图形编辑器 Krita 在某些时候实现了更逼真的颜色混合:http ://commit-digest.org/issues/2007-08-12/(Painterly 混合器插件)

他们说这是第一个使用描述颜料行为的 Kubelka 和 Munk 方程实现特殊技术的公共应用程序。

这是 Krita 混色的视频:https ://www.youtube.com/watch?v=lyLPZDVdQiQ

五十三的论文

在由FiftyThree开发的 iOS 版 Paper 应用程序中也有关于颜色混合的文章。他们描述了他们如何在该领域进行创新和实验,并提供混合蓝色和黄色的样本,从而产生绿色。然而,实际的过程或算法并没有真正描述在那里。

报价:

“在寻找一种好的混合算法时,我们最初尝试在各种颜色空间中进行插值:RGB、HSV 和 HSL,然后是 CieLAB 和 CieLUV。结果令人失望,”Chen 说。“我们知道红色和黄色应该产生橙色,或者红色和蓝色应该产生紫色——但无论你使用什么色彩空间,都没有办法得到这些颜色。有一个工程公理:做最简单的事情可能会奏效。好吧,我们现在已经尝试了最简单的方法,但他们甚至感觉都不对。”

似乎和 Krita 一样,Paper 实现了 Kubelka-Munk 模型:

[...] Kubelka-Munk 模型对每种颜色至少有六个值,包括每种 RGB 颜色的反射和吸收值。“虽然屏幕上颜色的外观可以用三个维度来描述,但颜色的混合实际上是在六维空间中发生的,”FiftyThree 的联合创始人兼首席执行官 Georg Petschnigg 解释道。Kubelka-Munk 的论文使团队能够将美学问题转化为数学框架。[...]

从所有这些信息来看,似乎基于 Kubelka-Munk 模型的实施可能是前进的方向,并提供更接近现实的结果。

尽管它看起来像一个复杂的过程,但我还没有看到太多关于如何实现这样的东西的好信息。


相关问题

这些问题是在这个问题之后发布的,都与同一件事有关。

他们都没有真正的答案。


其他相关链接和资源