问题标签 [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.
image-processing - HSL 是否优于 HSI 和 HSV 颜色空间?
HSL 是否优于 HSI 和 HSV,因为它考虑了人类的感知。对于某些图像处理算法,他们说我可以使用这些色彩空间中的任何一种,但我不确定该选择哪一种。我的意思是,算法只关心你为它们提供色调和饱和度通道,你可以选择使用哪个颜色空间
image-processing - 图像处理中如何使用CIELAB获得光照不变性?
我发现不推荐在 RGB 空间中使用欧几里得距离来比较图像分割等应用中的两种颜色,因为它依赖于照明和光照条件。此外,由于 HSV色调值在低强度下的数值不稳定性,因此 CIELAB 颜色空间被认为是更好的选择。
我的问题是我不明白如何实际使用它:由于 CIELAB 与设备无关,因此您不能简单地从某些 RGB 值转换为它,而无需了解用于获取这些 RGB 值的传感器的任何信息。据我所知,您必须首先在中间步骤中转换为 CIEXYZ,但根据源的确切 RGB 工作空间,有几种不同的矩阵可用。
或者,如果您只想使用 CIELAB 比较两种颜色(如我所说,例如执行图像分割),您选择的矩阵是否无关紧要?
winapi - 用于 DirecShow 的 Microsoft Lync colospaces
我正在开发一个 DirectShow 过滤器,它将充当我的网络摄像机和 Microsoft Lync 之间的适配器。
我不确定支持哪些色彩空间格式。
关于我在哪里可以找到此类信息的任何线索?
imagemagick - ImageMagick 在 HSL 上的合成(不是 HSB 也不是 HSV)
我只想通过编写一个 CUI 工具来替换 Photoshop 基于 HSL 的混合模式(颜色/色调/饱和度/亮度)。如果我可以通过 RMagick 做到这一点,那就更好了。
ImageMagick 可以管理 HSL 颜色空间,但 ImageMagick 的复合运算符 Colorize/Hue/Saturation/Luminize 被硬编码为基于 HSB 颜色空间。
有没有不编写逐像素处理代码的解决方法?谢谢。
objective-c - CGDisplayCreateImageForRect 图像与捕获的图像颜色不匹配
我正在使用以下代码捕获 1px x 1px 的屏幕截图。然后我对图像进行采样并获得一个 NSColor。
一切正常,除了捕获像素的颜色与源图像上的颜色不匹配。例如:我在 Photoshop 上制作了一个红色方块。我将正方形的颜色设置为 RGB 红色:255、绿色:0 和蓝色:0。当我在屏幕上的那个正方形内捕获一个像素时,我得到 RGB 红色:255,绿色:0,蓝色:17。有没有办法使捕获的图像与原始颜色匹配?
编辑: 另外,当我在 Photoshop 中截取红色方块并读取屏幕截图上的 RGB 颜色时,颜色也是红色:255,绿色:0,蓝色:17。这似乎是操作系统上的色彩空间行为。这会是预期的行为吗?这段代码基本上是一个颜色选择器,就像 Photoshop 上的颜色选择器一样。但是,我假设 Photoshop 会在此过程中的某处校正颜色。有任何想法吗?
谢谢!
graph - 如何使用 DirectShow 默认的“视频渲染器”渲染 NV12
我正在尝试开发一个视频源 DirectShow 过滤器。
以下图表有效:
[h264 源]->[Elecard H264 解码器]->[视频渲染器]
[h264 源]->[MS DTV-DVD 解码器]->[DMO 颜色转换器]->[视频渲染器]
我的过滤器输出 h264,它将被解码为 NV12,然后使用默认的基本视频渲染器以某种方式渲染,该渲染器只接受 RGB32。
视频渲染器是我无法解决的限制。当我尝试将过滤器自动连接到渲染器时,会自动加载“AVI 解压缩器”但不起作用。
我现在的解决方案是安装可以输出 RGB32 的 Elecard H264 解码器。我需要安装某种具有高 MERIT 值的颜色转换器。默认的 DMO 颜色转换器可以为我做到这一点,但它的 MERIT 似乎不够高。我不想依赖昂贵的第 3 方解决方案。
我可以弄乱 DMO 颜色转换的优点来强制它加载,但这似乎不是一个好的解决方案。我可能会影响系统上的其他应用程序。另一种可能性是开发我的颜色转换器过滤器,它也可能与已安装的应用程序发生冲突。
我不确定如何进行。
libavcodec - sws_scale 的替代方案
我正在使用 libavcodec 使用 x264 对捕获的 Windows 屏幕进行编码。由于输入是 RGB,我将其转换为 YUV 以使其与 x264 兼容。我正在使用 sws_scale 函数。我的问题是这个功能是否有任何替代品,因为在我的情况下我不需要进行任何缩放。此外,如果有人可以阐明此功能的工作流程,那将很有用。
PS:我假设 x264 仅在 YUV 颜色空间中运行。如果这个假设不正确,请同样通知我。
提前致谢。
iphone - 释放 CGColorSpaceRef 时 Iphone 应用程序崩溃
我正在使用CGColorSpaceRef
,当我释放它时,它会崩溃。我创建和发布的方式
完成一些任务然后释放
编译器显示的错误是“断言失败:(!state->is_singleton),函数color_space_state_dealloc,文件ColorSpaces / CGColorSpace.c,第127行”当我没有释放色彩空间或只是将其设置为nil时会发生奇怪的事情,我不知道为什么会这样。请帮助我。提前致谢。度过快乐的一天。
c - 如何在 C 中将 RGB 转换为 HSL?
如何在 C/C++ 中将 RGB 转换为 HSL?
(注意:这是一个(简短的)自我回答——我把它贴在这里,这样人们就可以通过搜索快速找到它。)