升级的技术实施


15

因此,我已经看到了三次和分形作为放大照片的方法。这些技术如何工作的背后是什么技术细节?为什么/何时优于另一种技术?


放大:双线性;缩小:兰索斯3

Answers:


15

首先,图像放大涉及将像素移动固定的距离,并填充具有相似内容的先前相邻像素之间的空间。这可以通过基本的像素制造(三次方滤波),也可以通过更复杂的方式来完成,例如将图像转换为矢量表示并在矢量空间中缩放。

在放大图像时,双三次过滤与双线性过滤一起使用相对简单的函数曲线将相邻像素的颜色混合在一起。双线性使用线性函数曲线,而双三次使用三次样条函数曲线(cspline)。双三次滤波通常会产生更平滑的结果,但是,两种算法最终都会通过函数曲线将相邻像素的值混合在一起,以在放大图像时“填充间隙”。应该注意的是,双三次缩放通常是无损的,因为只有原始像素之间的空间才真正产生。取决于特定实现方式的细微差别,原始像素可能会略有变化,但是在大多数情况下,原始数据会保留下来,并且在按比例放大图像时会制作新数据以填充。

图像缩放的分形方法采用了完全不同的方法。使用更复杂的算法来分析图像的内容,识别边缘和“对象”,并最终将图像转换为分形矢量格式。图像矢量化后,可以在矢量空间中“无损”缩放,然后以更大的尺寸重新渲染。分形算法(例如正版分形)使用分形矢量算法缩放图像,同时保持平滑,锐利的边缘。当图像最初具有清晰的边缘和可识别的边缘作为关键因素时,此方法很有用,并且在这些边缘上保持清晰的清晰度非常重要。

另外,正版分形尝试通过“自我相似性”概念维护非边缘细节,通过将图像内容视为分形来保留细节,并通过分形算法重新呈现非边缘内容。这具有以下优点:可以从许多像素组成的图案中生成新内容,而不是简单地从相邻像素中制造信息。当按比例放大大约200%时,此方法可以很好地起作用,但是按比例缩放的基本矢量性质在按比例缩放到较大尺寸时变得更加明显。还应注意,这种缩放方法并非无损,并且在算法尝试寻找分形时可能会丢弃一些精细的像素细节可以复制的模式。极端的缩放会导致可见的图案复制,并且可能会擦掉精细的边缘细节,以在所有图像尺寸上保持平滑,清晰的边缘。

BenVista还提供了称为S-Spline的专有算法。关于此算法细节的信息很少,但是看起来确实像是另一种基于函数曲线的算法。与正版Fractals一样,PhotoZoom Pro中的S-Spline Max缩放在维持边缘清晰度方面做得非常出色。该算法还能够缩放到200%左右,但是将其推得更远,则会导致可见的非边缘细节退化和平滑。缩放算法中的一般妥协似乎是最大边缘定义或最大细节保留。还应注意,默认情况下,大多数第三方缩放算法(包括Genuine Fractals和BenVista PhotoZoom Pro)会自动对最终图像应用不清晰的蒙版。

可以以迭代方式使用双三次。双三次缩放的根本症结在于,随着缩放比例的增加,它可以构造更多的信息,而最终的清晰度却是很高的。通过以3%到5%的增量执行双三次缩放,可以保留更多原始或接近原始的细节,并在每个步骤中制作更少的图像。迭代(或逐步)双三次缩放的最终结果可以保持相当大的边缘清晰度,而不会丢失细节。但是,代价是要花费更多的个人资金来进行扩展,因为目前没有预制的应用程序可以满足您的需求。您需要通过将之前的宽度或高度乘以缩放百分比,然后将该数字插入到图像编辑程序中,手动计算每一步的图像新的宽度和高度。的双三次缩放工具。最终结果可以是极好的,并且与带有模糊锐化掩膜的双三次图像一样清晰。在没有可见损害的情况下可以缩放图像的最大大小的限制比其他算法大得多,至少为400%,甚至可能更多。


嗯 这将会是很容易的脚本了,迭代化双三次缩放为GIMP脚本,或Photoshop的动作....
请阅读简介

我已经尝试过将其作为photoshop的动作,但是由于它需要计算信息,因此并未成功。我实际上并没有使用Photoshop进行太多脚本编写,因此我不确定它是否支持数学功能或脚本编写。
jrista

2
+1哇,很棒的详细答案。在我读完您的答案之前,我认为这是一个无聊的问题。
fmark

我刚刚在Paint.net中测试了多次缩放,但是结果却不像此答案中所述,图片多次调整大小导致模糊不清,因为同一张图片仅进行了一次采样。我尝试将同一张图片的大小分别调整为200%,每次迭代104%,直到达到近似相同的像素尺寸。
Jahaziel 2012年

1
如果您想对从该方法中受益的图像进行迭代双三次的示例,请在此处查看我的分析:实证研究:极端的数字放大
jrista
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.