问题标签 [colormatrix]

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 投票
1 回答
92 浏览

graphics - 选择颜色矩阵以获取原始图像所需的信息

我有一个要求,我需要屏蔽和清除图像的屏蔽部分。我已经完成了屏蔽部分要求。我正在使用颜色矩阵来掩盖我的图像,并且图像中的选定部分也被涂黑了。为此,使用的颜色矩阵设置是,

颜色矩阵 obj = 新颜色矩阵 ( { 255,0,0,0,0} {0,255,0,0,0} { 0,0,255,0,0} { 0,0,0,1,0} { 0,0 ,0,0,1} )

然后我在原始图像上绘制图像的选定部分。

现在在清除蒙版时,我需要恢复那些选定区域上的原始图像。我怎样才能实现这种支持。

我可能在图像中有 5 个选定的蒙版区域,并说 ClearMask 需要将原始图像从最后一个选择一个一个恢复到第一个选择。

如果需要更多信息,请告诉我。

0 投票
2 回答
1701 浏览

c# - 如何使用 .NET ColorMatrix 更改颜色?

我有一个图像,如果 pixel(x,y).R < 165,我想将像素设置为白色。

之后,我想将所有不是白色的像素设置为黑色。

我可以使用 ColorMatrix 做到这一点吗?

0 投票
10 回答
60300 浏览

android - 了解使用 ColorMatrix 和 ColorMatrixColorFilter 修改 Drawable 的色调

我正在开发应用程序的 UI,我正在尝试使用灰度图标,并允许用户将主题更改为他们选择的颜色。为此,我试图仅应用某种 ColorFilter 来在可绘制对象的顶部覆盖颜色。我试过使用 PorterDuff.Mode.MULTIPLY,它几乎完全符合我的需要,除了白色也会被颜色覆盖。我理想中寻找的是类似于 Photoshop 中的“颜色”混合模式,其中图形保留其透明度和亮度,并且只修改图像的颜色。例如:

替代文字变成替代文字

在做了一些研究之后,似乎 ColorMatrixColorFilter 类可以满足我的需要,但我似乎找不到任何指向如何使用矩阵的资源。这是一个 4x5 矩阵,但我需要知道的是如何设计矩阵。有任何想法吗?

编辑:好吧,到目前为止我发现的内容如下:

该矩阵是单位矩阵(应用时不做任何更改),数字范围从 0 到 1(浮点数)。该矩阵将与每个像素相乘以转换为新颜色。所以这就是我开始变得模糊的地方。所以我认为每个像素都是一个 1 x 4 的向量,其中包含 argb 值(例如0.2, 0.5, 0.8, 1),这些值将点缀着变换矩阵。因此,要将图像的红色强度加倍,您可以使用如下矩阵:

这会给你一个向量(颜色)0.4, 0.5, 0.8, 1。从有限的测试来看,这似乎是这种情况,并且工作正常,但我实际上仍然遇到了同样的问题(即白人获得着色)。进一步阅读告诉我,这是因为它正在对 RGB 值进行转换,而对于色相偏移,应首先将值转换为 HSL 值。所以可能我可以编写一个类来读取图像并转换颜色,然后用新颜色重新绘制图像。这给 StateListDrawables 带来了另一个问题,因为我不确定如何在代码中获取这些内容并修改所有这些内容,以及它的处理速度有多慢。:/

嗯,好吧,所以我想我会遇到的另一个问题是,是否可以使用矩阵将 RGB 转换为具有亮度信息的另一个颜色空间,例如 L a b 或 HSL?如果是这样,我可以只乘以该转换的矩阵,然后对该矩阵进行色调调整,然后将该矩阵应用为 ColorFilter。

0 投票
1 回答
713 浏览

android - 如何更改图像的颜色矩阵 x,y 坐标?

我正在开发一个允许用户为图像着色的应用程序。我有我要应用的颜色的颜色矩阵,但问题不是改变 xy 坐标的颜色,而是整个图像被着色。我不知道如何将 colormatix 应用于图像的指定坐标。

我在用

我正在寻找类似的东西imageview.SetPixelColorMatrix(x,y,matrix)

谁能帮我?

0 投票
2 回答
4116 浏览

.net - 如何在 .NET 中使用 ColorMatrix 更改亮度、颜色、饱和度、色调

我有一个包含一些随机位图数据的“位图”类型。我已经为亮度、颜色、饱和度和色相编写了自己的调整,这些调整分别作用于每一位,不出所料,它非常慢。

在我的研究中,我注意到使用矩阵可以非常快速地调整这些。此外,.NET 有一个 ColorMatrix,您可以在 DrawImage() 时应用矩阵效果。

我们设置的矩阵如下所示(来自 MSDN 网站):

但我一直无法找到合适的范围或这些数字中的任何一个到底是做什么的。我不知道如何调整亮度、颜色、饱和度和色调。

有什么帮助吗??我是否在某处遗漏了一些好的文档?

谢谢!!

0 投票
1 回答
890 浏览

c# - 用于位图操作的各种颜色矩阵的集合

我一直在搞乱一些低级别的位图操作,并且一直在创建一些不同的颜色矩阵来应用于位图数据以添加“过滤器”(因为没有更好的术语)。

我在 C# 和 AS3 中看到了许多关于将各种颜色矩阵应用于位图的在线教程,但我很好奇是否有人简单地收集了这些颜色矩阵的集合,这些颜色矩阵映射到特定的过滤器样式(黑白、棕褐色等)。

0 投票
1 回答
849 浏览

colors - 如何使用 ColorMatrix 工具反转图像的颜色?

我必须在矩阵中输入什么值?

0 投票
1 回答
1772 浏览

c# - 关于 ColorMatrix 转换如何工作的说明

我正在开发一个图像处理应用程序(为了好玩),并且正在努力完全理解 ColorMatrix 转换是如何工作的。我了解了线性/仿射变换的基础知识,并且可以通过在线复制示例来过得很好,但我想完全理解为什么某些东西有效,而不是仅仅满足于它有效。

例如,对图像进行简单转换以产生负片(每种颜色都转换为其各自的互补色)使用以下矩阵:

我知道 -1 是 180 度的余弦,这是将颜色“翻转”为互补色所需的旋转,但我不明白的是如何将颜色矢量与上述矩阵相乘并产生正确的互补色向量。

例如,如果一个像素的颜色向量为 [247, 255, 0, 255, 1](使用 RGBAW 空间),则对上述矩阵执行乘法运算会产生 [-247, -255, 0, 255, 1] ,但这是不正确的,因为上面的真正互补色是 [8, 0, 255, 255, 1]。

我在这里遗漏了一些明显的东西,很高兴承认我不完全确定我在做什么:) 正在转换的颜色矢量是否在其他坐标系中表示?(例如不是 0-255)

如果有人可以帮助提供我理解的“缺失环节”,我将不胜感激。

编辑

我刚刚发现以下矩阵也可以工作,并且实际上在数学上很直观(它会产生正确的向量)。

所以我的新问题是:为什么这两个矩阵都有效?后者为我提供了更令人满意的解决方案,因为我可以从代数的角度理解它为什么起作用。四行是否用于缩放?如果是这样,为什么缩放会增加 255?它从哪里获得这个价值?

对不起,如果这些真的是愚蠢的问题,我正在努力解决这个问题。

0 投票
2 回答
1721 浏览

c# - WPF 相当于 GDI+ 的 ColorMatrix

我注意到 WPF 具有 System.Windows.Media(.Imaging) 命名空间,其中包含许多与 System.Drawing(.Imagine) 相同的功能,但我没有看到与 GDI+ 中的 ColorMatrix 等效的功能。实际上,我通常看不到进行颜色转换的方法。一个存在吗?我很高兴使用 GDI+,但只是好奇。

0 投票
5 回答
1127 浏览

c# - 如何使用 ColorMatrix 为图像的每个像素设置相同(恒定)的色调值?

我正在尝试使用 ColorMatrix 为整个图像设置一个恒定的色调值。我的目标是使整个图像看起来具有相同的颜色,而不会失去任何区域的亮度。我找到了一种通过使用 ColorMatrix 来改变图像色调值的方法,但我找不到任何方法来为所有像素设置相同的色调值。我可以通过迭代图像的每个像素来做到这一点,但这种方法太慢了。我不确定是否可以使用 ColorMatrix 来做到这一点,并且我对 ColorMatrix 方法以外的可能解决方案持开放态度。

输入图像

色调偏移输出图像*

所需的输出图像**

*这可以用颜色矩阵来完成

** 我可以用迭代像素做到这一点,但不能用 ColorMatrix

PS:我正在尝试在 Android 上执行此操作,但我相信这个问题与 android 没有直接关系,因为 ColorMatrix 方法在 Flash、C# 等其他平台上很常见。