图像滤波器内核扩展16-235有限颜色范围

问题描述:

是否有可能写一个5x5的内核来处理有限的色彩范围成为品种齐全?图像滤波器内核扩展16-235有限颜色范围

这是我的样本黑白的内核,我不知道是什么值使用,并在那里达到这个颜色扩展:

灰度

{ 0.3, 0.3, 0.3, 0.0, 0.0 } 
{ 0.6, 0.6, 0.6, 0.0, 0.0 } 
{ 0.1, 0.1, 0.1, 0.0, 0.0 } 
{ 0.0, 0.0, 0.0, 1.0, 0.0 } 
{ 0.0, 0.0, 0.0, 0.0, 1.0 } 

我想RGB色彩扩展16位RGB 235 => 0-255

但是我需要内核矩阵,因为我没有处理图像,但是我将矩阵传递给了Windows API函数(未记录:SetMagnificationDesktopColorEffect)。

我不能做一个简单的减法/分/乘上的像素。我没有他们。

+0

我没有办法测试,但我想你会把'16'也许'-16',在第4行的前3种元素作为偏移,和255 /(235-16 )在前3个对角元素中作为乘数。 http://www.graficaobscura.com/matrix/index.html和https://docs.rainmeter.net/tips/colormatrix-guide/ –

+0

255 /(235-16),而不是前三个对角1,减轻了图像,然而,第四行中的-16/16(或任何与1.0偏离很多的东西)将图像完全分解,使其几乎变白或变黑。 –

基本上可以通过减去从图像中16,然后除以219.然后,你将有标准化为1倍的图像,你必须通过255相乘得到255强范围表示做没有内核。

+0

我知道,但我的应用程序没有完成处理。这个矩阵被传递给一个未记录的windows API函数,该函数将该效果应用于桌面管理器。它在user32.dll中被称为SetMagnificationDesktopColorEffect。我需要矩阵传递给它。 –

+0

澄清问题。 Sorry.But +1的努力 - 你居然回答这是不是足够好界定:) –

+0

这是不可能的,因为内核函数空间滤波方法,他们不直接处理的强度,但仅通过空间坐标强度每个依赖问题其他。可以将内核的所有条目设置为0,除了中间值设置为255/235以外,它将上限增加到255,但这不适用于下限,因为16功能的减法不能跨越核心。 –