Mitchell–Netravali滤波器

来自testwiki
跳转到导航 跳转到搜索

Mitchell–Netravali滤波器BC–样条是一组主要用于计算机图形学Template:Link-en,例如,可被用于抗锯齿缩放光栅图形。它们在图像编辑程序中也被称为双三次滤波器,因为它们是二维三次样条[1][2][3]

定义

Mitchell–Netravali滤波器的图,带有参数B = C = 1/3 。

Mitchell–Netravali滤波器是作为对Template:Link-en失真(artifacts)调查的一部分而被设计的。滤波器是具有四像素宽支撑的分段三次滤波器。从这个系列中排除不合适的滤波器后,例如不连续的曲线,仍然存在两个参数B和C ,通过它们可以配置Mitchell–Netravali滤波器。滤波器定义如下:

k(x)=16{(129B6C)|x|3+(18+12B+6C)|x|2+(62B), if |x|<1(B6C)|x|3+(6B+30C)|x|2+(12B48C)|x|+(8B+24C), if 1|x|<20其他情况

通过Template:Link-en构造 Mitchell–Netravali滤波器的二维版本有可能的。在这种情况下,滤波器可以被一维滤波器的一系列插值代替。从四个相邻像素的颜色值P0, P1, P2, P3然后计算颜色值P(d)如下:

P(d)=((16BC)P0+(32BC+2)P1+(32B+C2)P2+(16B+C)P3)d3+((12B+2C)P0+(2B+C3)P1+(52B2C+3)P2CP3)d2+((12BC)P0+(12B+C)P2)d+16BP0+(13B+1)P1+16BP2

P介于P1P2 ; dP1P之间的距离。

主观效果

如下图所示,参数B和C的某些选择可能会导致各种失真。研究人员推荐参数数值来自B+2C=1 (虚线)家族和尤其是B=C=13作为一个令人满意的妥协[1][4]

使用各种 Mitchell-Netravali 滤波器重建图像的主观外观。

实现

以下参数导致常见图像编辑程序中使用的众所周知的三次样条

B C 三次样条 常见的实现
0 Any Cardinal splines
0 0.5 Catmull-Rom spline GIMP中的双三次滤波器
0 0.75 Unnamed Adobe Photoshop中的双三次滤镜[5]
1/3 1/3 Mitchell–Netravali ImageMagick中的 Mitchell滤波器[4]
1 0 B样条 Paint.NET中的双三次滤波器

例子

Template:Gallery Template:Clear

参阅

参考资料

Template:Reflist