问题标签 [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 投票
3 回答
2863 浏览

colors - 在计算颜色之间的欧式距离时,sRGB 比 L*a*b* 差多少?

L*a*b*是最好的方法,但是转换成很复杂,而且我很懒。通过直接在sRGB上操作,我放弃了多少精度?

0 投票
4 回答
1617 浏览

neural-network - 自组织图(SOM)在色彩空间中对图像进行聚类时无效?

我正在尝试在 ai-junkie 网站http://www.ai-junkie.com/ann/som/som1.html上重现实验,以使用较大颜色的自组织地图 (SOM) 将不同颜色聚集/分组在一起数据集。我使用了大约 400 张不同纯色的图像,因为它们是纯色,所以任何颜色空间(例如 RGB)中的颜色值对于特定图像中的所有点都是相同的。因此,我在使用 SOM 进行聚类之前使用的特征只是每个图像的 3 维颜色值。

当我执行 SOM 时,其源代码从http://knnl.sourceforge.net/获得,具有 40 行、40 列和 20 次迭代(epoch=20),聚类结果对我来说毫无意义。我看起来如下: 在此处输入图像描述

我觉得这只是随机聚类(如果我可以这样称呼的话),即使是 k-means 算法也会给出更好的结果。关于可能出错的任何想法?

0 投票
6 回答
16118 浏览

c - 这个 RGB 到 XYZ 颜色空间转换算法有什么问题?

我的目标是将 RGB 像素转换为 CIELab 色彩空间,以便进行一些只有在 CIELab 中才能进行的特殊计算。为此,我必须先将 RGB 转换为 XYZ,这是真正困难的部分。

我试图在 Objective-C 中实现这个算法(虽然主要使用纯 C),但结果是错误的。

我的代码基于easyrgb.com提供的伪实现。他们有一个在线颜色转换器,效果很好。他们说他们的伪代码与转换器中使用的伪代码相同。

这是他们的伪代码:

这是我在 Objective-C / C 中实现它的尝试:

但是,我没有得到与他们的工具相同的结果(具有相同的观察者和光源设置)。

在我的测试中,我将这些值输入到他们的工具中,并得到了 XYZ 的结果,这与我的实现为该 RGB 值产生的结果相去甚远。请看截图:


截屏


生成的 Lab 颜色值与 Photoshop 告诉我的非常接近,因此转换器效果很好。

上面的 C 代码给了我这个结果:

知道这次失败的原因是什么吗?我在实现中是否犯了错误,还是需要其他常量?

如果您知道一些经过测试的 RGB 到 XYZ、XYZ 到 CIELab 或 RGB 到 CIELab、XYZ 到 Lab 或 RGB 到 Lab 实现,请不要犹豫,在此处发布它们。

基本上,我要做的就是计算两种颜色之间的偏差,也称为 Delta-E。这就是为什么我需要从 RGB 转换为 XYZ 到 Lab(或 CIELab)...

0 投票
1 回答
637 浏览

objective-c - NSColor: colorWithDeviceRed... 在第二台显示器上不起作用

为了能够校准显示器,我必须能够以设备 RGB 值驱动它。

为了做到这一点,我通过以下方式创建了一个 NSColor:

然后我把这个颜色放在视图上。

当我使用“DigitalColor Meter”时,仅当主监视器上显示视图时才应用此设备颜色而无需任何转换。因此,仅在具有菜单栏的显示器上。

如果您将视图放在第二台显示器上,看起来好像发生了从主显示器的 RGB 到第二显示器的 RGB 的转换。只有在两个显示器的色域之间存在很大差异时,您才会看到这一点。例如,我有一台配备 Eizo ColorEdge CG 245 的 MacBook Pro。如果你然后输入 [0 0 1.0],你可能会得到类似 [0.2 0.1 1.0] 的东西。

任何人都知道如何摆脱这种额外的转换。在我看来,deviceRGB 应该是 deviceRGB。为了为第二台显示器制作配置文件,这是强制性的。现在我必须将菜单栏移动到第二台显示器,创建配置文件并将其移回。但是对于我们的应用程序,客户需要能够进行验证,并且需要经常进行。同样的问题也发生在这里。

0 投票
1 回答
2068 浏览

java - 如何在 Java 中确定图像的色彩空间?

我正在尝试在 Java 中确定图像的色彩空间。我相信这在 BufferedImage 类中被称为“imageType”。这是给我带来麻烦的代码行 - 我不知道该放什么作为第三个参数:

我将使用类 Graphics2D 将多个图像拼接到 BufferedImage 中。我使用的一些图像可能是 RGB 格式,其他是 ARGB、4 字节 ARGB 等......

有什么方法可以以编程方式确定图像的色彩空间?或者如果没有,有没有办法在拼接之前将所有图像转换成相同的色彩空间?

0 投票
1 回答
4788 浏览

java - 使用 ColorConverterOp Java 将 RGB JPEG 转换为 CMYK JPEG

我正在尝试将 rgb 中的 jpeg 图像转换为 CMYK 颜色空间。唯一的问题是我的最终输出始终是黑色图像。但有趣的是,MAC 中的预览应用程序可以正确显示图像。到目前为止,似乎没有一个成功的 rgb 到 cmyk 转换的例子。下面是我用来尝试转换的代码。如果我使用 RGB ICC 配置文件执行到 rgb 的转换,此代码工作正常。非常感谢任何指导。

0 投票
1 回答
249 浏览

java - 在 Java2D 中使用 ColorConvertOp 时,有没有办法为透明度设置默认颜色?

我正在将具有透明度的图像转换为不具有透明度的色彩空间。我想为透明区域设置背景颜色。现在,当我转换它时,任何透明区域在最终图像中都会变成黑色。当我在 ColorSpaces 之间转换时,有没有办法做到这一点?这是我用来在颜色空间之间转换的代码:

我正在从 BufferedImage.TYPE_4BYTE_ARGB 转换为 BufferedImage.TYPE_3BYTE_BGR。

0 投票
1 回答
934 浏览

image-processing - Y'CbCr 空间中的伽马校正

我需要对 Y'CbCr 空间中的图像进行 gamma 校正,以便在图像中的饱和和饥饿区域显示细节,我想知道是否需要调整色度子通道?

我知道如果我饿死亮度通道像素,如果我不调整它,色度就会溢出。进行伽马校正时是否需要考虑相同的因素?调整色度通道是否值得?

0 投票
1 回答
1631 浏览

iphone - iOS YUV 视频捕获输出中的重复场景项

我捕捉视频并处理生成的 YUV 帧。输出如下所示: 来自结果视频的样本

虽然它通常出现在我的手机屏幕上。但是我的同行收到它就像上面的 img 一样。每个项目都重复并在水平和垂直方向上移动了一些值

我捕获的视频是 352x288,我的 YPixelCount = 101376,UVPixelCount = YPIXELCOUNT/4

有什么线索可以解决这个问题,或者是了解如何在 iOS 上处理 YUV 视频帧的起点?

这是 captureOutput 函数

上面的代码有什么问题吗?

0 投票
2 回答
2035 浏览

linux - 如何将色彩空间 YCbCr 的图像转换为 CMYK?

我有具有 YCbCr 颜色空间的图像。但我想让它们变成 CMYK。我怎么做?Perl 解决方案会很棒。命令行(Ubuntu)解决方案会很好。

我尝试过使用 ImageMagick,但我的图像大多是黑色的——事实上,看起来颜色是相反的。这是我尝试过的命令示例: