当前位置: 首页 > 编程语言 > C#

阐明ColorMatrix变换的工作原理Share

时间:2023-04-11 00:53:59 C#

阐明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)如果有人可以帮助提供我理解的“缺失环节”,我将不胜感激。编辑我刚刚发现下面的矩阵也有效,而且实际上很直观(它产生正确的向量)。-100000-100000-1001111000001所以我的新问题是:为什么两个矩阵都有效?后者为我提供了一个更令人满意的解决方案,因为我可以从代数上理解它是如何工作的。这四根线是用来缩放的吗?如果是这样,为什么缩放增加了255?它的价值从何而来?抱歉,如果这些问题真的很愚蠢,我正试图让这个问题失败。你知道底线是翻译。汉斯在评论中说的是涉及到的比例因子是255,这可能会让你感到困惑。一种看待这个问题的方法是首先将所有ARGB值除以255,然后应用矩阵乘法,然后将所有值乘以255以获得正确的ARGB值。另一种看待它的方法是将转换后的值视为255。两种方式都会得到相同的结果。以上是C#学习教程:阐明ColorMatrix转换的工作原理。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——((247/255)*-1+1)*255=8or247*-1+255=8本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: