Tag: colormatrix

与颜色矩阵形成对比

嗨我想在我的应用程序中实现对比度filter, 如此链接或此对比度,但颜色矩阵和跟踪栏的值 我已经找到了它的颜色矩阵 float c = mytrackbar.value * 0.01f //maxTrackbarValue = 100, minTrackbarValue = -100 float t = 0.01f; cmPicture = new ColorMatrix(new float[][] { new float[] {c,0,0,0,0}, new float[] {0,c,0,0,0}, new float[] {0,0,c,0,0}, new float[] {0,0,0,1,0}, new float[] {t,t,t,0,1} }); 但结果却截然不同。 我尝试在~c~中改变0.01f, 在~t~值中改变0.01f,但它只给出亮度等结果(例如:c = mytrackbar.value * 0.04f) 我想知道~c~&〜t~值以及我应该用于创建对比度的最大和最小范围 更新@Nico private void myTrackBar_ValueChanged(object sender, EventArgs […]

澄清ColorMatrix转换的工作原理

我正在做一些关于图像处理应用程序的工作(为了好玩),我正在努力完全理解ColorMatrix转换的工作原理。 我得到线性/仿射变换的基础知识,并且可以通过在线复制示例得到很好的结果,但我想完全理解为什么有些东西可以工作而不仅仅是满足它的工作原理。 例如,对图像进行简单转换以产生其负值(每种颜色转换为其各自的互补)使用以下矩阵: [-1, 0, 0, 0, 0] [0, -1, 0, 0, 0] [0, 0, -1, 0, 0] [0, 0, 0, 1, 0] [1, 1, 1, 0, 1] 我知道-1是180度的余弦,这是将一种颜色“翻转”到它的互补所需的旋转,但我不明白的是颜色向量如何与上面的矩阵相乘并产生正确的互补向量。 例如,如果像素的颜色矢量为[247,255,0,255,1](使用RGBAW空间),则对上述矩阵进行乘法会产生[-247,-255,0,255,1] ,但这是不正确的,因为上面的实际互补色是[8,0,255,255,1]。 我在这里遗漏了一些明显的东西,我很高兴地承认我不完全确定我在做什么:)变换的颜色矢量是否在其他坐标系中表示? (例如不是0-255) 如果有人能帮助提供我理解的“缺失环节”,我会非常感激。 编辑 我刚刚发现以下矩阵也有效,并且实际上是直观的(它产生了正确的向量)。 -1 0 0 0 0 0 -1 0 0 0 0 0 -1 0 0 1 1 1 1 […]

什么是真正的黑白色矩阵?

我想将图像从颜色转换为黑白(即没有灰度,只有黑白)。 有没有人有一个很好的色彩矩阵来实现这一目标?