是否有任何算法或工具可以提高图像的分辨率 - 除了让图像中的每个单独像素变大一点的简单缩放之外?
我意识到这样的算法必须发明原始图像中并不真正存在的像素,但我认为可能有一些算法可以智能地找出要添加到图像中的像素以提高其分辨率。
是否有任何算法或工具可以提高图像的分辨率 - 除了让图像中的每个单独像素变大一点的简单缩放之外?
我意识到这样的算法必须发明原始图像中并不真正存在的像素,但我认为可能有一些算法可以智能地找出要添加到图像中的像素以提高其分辨率。
插值:图像缩放
对于实际算法检查图像插值。
对您的问题的简单回答是:“是的,有算法,但都不是很好。” 正如您在问题中提到的那样,限制因素是需要发明像素以将分辨率提高到超过少量。(这就是为什么你不能从闭路电视安全摄像机拍摄的照片中从某人眼镜的反射中读取车牌号,就像他们在 CSI:迈阿密一样。)
如果您只想创建更大的图像(用于壁挂等),那么您可以使用Photoshop 插件,使用现有信息平滑像素之间的过渡。它不能创造新的像素,但它可以摆脱那种四四方方的像素化外观。
先前答案的附录:请注意,您的问题的答案在很大程度上取决于您所说的分辨率的确切含义-显示设备,捕获设备或查看设备(即人眼)的含义。我假设您'正在谈论光栅图像(矢量图像不存在问题。)
您必须接受以较高分辨率拍摄的照片比以较低分辨率拍摄的相同场景的照片包含更多的图像信息(即细节)。没有办法凭空添加这些信息。缩放算法基于离散光栅图像元素之间的连续性假设合成一些信息。那个“新”信息实际上并不是新的,而是从预先存在的图片信息中衍生出来的,因此不能认为它有100%的概率与原始场景匹配。更好的算法可能会产生更好的概率,但它们的结果将始终具有小于 1 的匹配概率。
放大图像是有风险的。超过一定程度,放大图像是徒劳的;你不能凭空神奇地合成无限数量的新像素。并且插值像素永远不如真实像素。这就是为什么将 512x512 的 Lena 图像放大 500% 有点不自然。找到更高分辨率的扫描或您需要的任何图片* 比在软件中升级它更聪明。
提高分辨率的一种方法是进行多次曝光,将它们放大到 4 倍区域(双向 2 倍线性)并使用堆叠软件合并图像。最终图像将优于任何原件。
您可以尝试使用 autotrace 或 potrace 等工具对图像进行矢量化处理,并以您喜欢的任何分辨率使用它。但它的计算成本非常高,因此您最终得到的图像颜色/特征很少,如果您需要快速处理整个图像,则更少。
在某些情况下,超分辨率算法可能会有所帮助。我不知道所涉及的所有内容(需要软件/硬件和初始图像),但如果您有兴趣,这里有一些链接:
http://almalence.com/doc/superresolution-comparison/ (似乎 Almalence 的 PhotoAcute 在本文中测试的产品中表现最好——30 美元或 150 美元)。它们位于:www。光敏网络
用于 SR 的马尔可夫随机场 – 免费软件包(麻省理工学院和微软项目) http://people.csail.mit.edu/billf/project%20pages/sresCode/Markov%20Random%20Fields%20for%20Super-Resolution.html
大多数体面的图像编辑器都有平滑/插值过滤器来进行这种调整大小/重新采样,例如IrfanView,它为您提供了多个插值过滤器选项。请参阅Lanczos 重采样。ImageMagick 的转换程序也允许您在指定过滤器后执行此操作
如果您需要通过算法执行此操作,请查看 Draemon 建议的Image Scaling链接。您将在什么平台上进行这些插值?大多数图形库将实施多种方法,使您能够在速度与质量之间取得平衡。
如果您只需要调整一些图像的大小,我推荐GIMP。它可以通过多种方式调整图像大小,至少其中一种方式在任何情况下都能产生出色的效果。
正如其他人指出的那样,您不能指望缩放方法来发明原始图像中没有的信息。所以你不能指望它会像 CSI 中的那些时刻,他们“放大和增强”以看到原始图像中无可救药地模糊的车牌上的数字。