是否有提高图像分辨率的算法?

时间:2008-12-12 15:14:11

标签: algorithm image resolution image-scaling

是否有任何算法或工具可以提高图像的分辨率 - 除了简单的缩放之外,图像中的每个像素都要大一些?

我意识到这样的算法必须发明在原始图像中并不存在的像素,但我想可能有一些算法可以智能地找出要添加到图像中的像素以增加其分辨率。

10 个答案:

答案 0 :(得分:4)

插值:Image Scaling

答案 1 :(得分:3)

对于实际算法,请查看image interpolation

你的问题的简单答案是,“是的,有算法,但没有一个非常好。”正如您在问题中提到的,限制因素是需要发明像素以便将分辨率提高到超过一小部分。 (这就是为什么你不能真的通过CCTV安全摄像头拍摄的照片从某人的眼镜反射中读取车牌号码,就像他们在CSI:迈阿密一样。)

如果你想要做的就是创建一个更大的图像(用于壁挂等),那么你可以使用plugin for Photoshop来平滑使用现有信息的像素之间的过渡。它无法创建新的像素,但它可以摆脱那种四四方方的像素化。

答案 2 :(得分:3)

以前答案的附录:请注意,您的问题的答案在很大程度上取决于您对显示设备,捕捉设备或观看设备(即人眼)的分辨率的确切含义。我假设你在谈论光栅图像(矢量图像不存在这个问题。)

必须接受以较高分辨率拍摄的照片将包含比以较低分辨率拍摄的相同场景的照片更多的图像信息(即细节)。 无法无法通过空气添加此信息。缩放算法基于离散栅格图像元素之间的连续性假设来合成一些信息。该“新”信息实际上并不是新的,而是从预先存在的图像信息中得出的,因此不能认为它具有100%匹配原始场景的概率。更好的算法可能会产生更好的概率,但是它们的结果总是具有小于1的匹配概率。

答案 3 :(得分:2)

  

放大图像存在风险。超越某一点,扩大图像是一个愚蠢的差事;你不能凭空无限地合成无限数量的新像素。插值像素永远不如真实像素。这就是为什么将512x512 Lena图像大小增加500%不仅仅是人为的。找到一个更高分辨率的扫描图像或任何你需要的图像比在软件中升级它更聪明。

From Jeff Atwood

答案 4 :(得分:2)

提高分辨率的一种方法是进行多次曝光,将它们增大到4x区域(双向2x线性)并使用堆叠软件合并图像。最终图像将优于任何原件。

答案 5 :(得分:1)

您可以尝试使用autotrace或potrace等工具对图像进行矢量化,并以您喜欢的任何分辨率使用它。但它的计算成本非常高,因此您最终得到的图像颜色/功能很少,如果您需要快速完成整体工作,则会更少。

答案 6 :(得分:1)

在某些情况下,超分辨率算法可能有所帮助。 我不知道所涉及的是什么(软/硬件和初始图像必要),但如果你有兴趣,这里有一些链接:

http://almalence.com/doc/superresolution-comparison/ (看起来像Almalence的PhotoAcute票价是本文中测试的最好的--30美元或150美元)。他们在:www。 photoacute dot com

SR的马尔可夫随机字段 - 一个免费软件包(麻省理工学院和微软项目) http://people.csail.mit.edu/billf/project%20pages/sresCode/Markov%20Random%20Fields%20for%20Super-Resolution.html

答案 7 :(得分:0)

大多数体面的图像编辑器都有平滑/插值滤镜来进行这种调整大小/重新采样,例如: IrfanView为插值过滤器提供了几个选项。见Lanczos resampling。 ImageMagick的转换程序允许您在指定filter

后执行此操作

答案 8 :(得分:0)

如果您需要以算法方式执行此操作,请查看Draemon建议的Image Scaling链接。您将在哪个平台上进行这些插值?大多数图形库将实现各种方法,使您可以平衡速度和质量。

如果您只需要调整某些图片的大小,我建议GIMP。它可以通过多种方式调整图像大小,其中至少有一种方法可以在任何情况下都能产生出色的效果。

正如其他人指出的那样,你不能指望一种缩放方法来发明不在原始图像中的信息。所以你不能指望它就像CSI中的那些瞬间,他们会“缩放和增强”,看看在原始图像中无可救药地模糊的牌照上的数字。

答案 9 :(得分:0)

有一篇关于内容感知图像缩放的SIGGRAPH 2007论文。您可以在youtube上看到演示。这取决于应用程序,但很可能这将是一个过度杀伤。