2008-12-12 81 views
5

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

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

回答

1

放大影像是有风险的。超越某个特定点,放大图像是愚蠢的错误;你不可能在空中神奇地合成无限数量的新像素。内插像素不如真实像素。这就是为什么将512x512 Lena图像升高500%的原因。找到更高分辨率的扫描图片或任何你需要的图片比用软件升级它更聪明。

From Jeff Atwood

+0

But..but..but..but..they do it movies on the time! – Tom 2008-12-12 15:20:54

+0

是的,在所有的CSI系列中,它们都在一秒之内完成! – Turnkey 2008-12-12 15:28:22

0

最像样的图像编辑器具有平滑/插值滤波器做这种尺寸/重新采样,例如中IrfanView它给你几个插值滤波器的选项。请参阅Lanczos resampling。在指定filter

0

后,ImageMagick的转换程序也允许您执行此操作。如果您需要通过算法操作,请查看Draemon建议的Image Scaling链接。你将在什么平台上进行插值?大多数图形库将实施各种方法,使您可以平衡速度与质量。

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

正如其他人指出的那样,您不能期望缩放方法能够发明不在原始图像中的信息。所以你不能指望它像CSI中那些“放大和增强”的时刻,看到原始图像中绝望模糊的车牌号码。

3

对于实际算法检出image interpolation

对你的问题的简单回答是,“是的,有算法,但没有一个很好。”正如您在问题中提到的那样,限制因素是需要发明像素以增加分辨率,而不是少量。 (这就是为什么你不能真正读取反射一辆车牌号在别人摘下眼镜从CCTV安全摄像机拍摄,就像他们在CSI做照片:迈阿密)

如果你想做的是创建一个更大的图像(墙挂或类似的),那么你可以使用一个plugin for Photoshop,使用现有的信息平滑像素之间的过渡。它不能创建新的像素,但它可以摆脱那种四方形,像素化的外观。

3

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

必须接受以较高分辨率拍摄的照片将包含比以较低分辨率拍摄的相同场景的照片更多的图像信息(即细节)。 没有办法无法添加这些信息。缩放算法基于离散光栅图像元素之间的连续性假设合成一些信息。这个“新”信息实际上并不是新的,而是来源于已有的图像信息,因此不能认为它有100%的匹配原始场景的可能性。更好的算法可能会产生更好的可能性,但其结果将始终小于1

1

匹配概率你可以尝试像自动跟踪或potrace矢量化工具的图像和任何你喜欢的分辨率,使用它。但它在计算上成本非常高,所以如果您需要快速完成整体工作,您最终会得到一个颜色或功能较少的图像,甚至更少。

0

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

1

超分辨率算法可能有助于某些情况。 我不知道这一切是怎么参与(软/硬件&初始必要的图像),但如果你有兴趣,这里的一些链接:

http://almalence.com/doc/superresolution-comparison/ (好像Almalence的PhotoAcute票价最好在这个测试者的文章 - $ 30或$ 150)。他们在:www。 photoacute科网

马尔可夫随机场SR - 一个免费的软件包(MIT &的Microsoft Project)来提高分辨率 http://people.csail.mit.edu/billf/project%20pages/sresCode/Markov%20Random%20Fields%20for%20Super-Resolution.html

2

一种方法是采取多重曝光,升迁他们4倍面积(2个线性的两种方式)并使用堆叠软件合并图像。最终图像比任何原稿都要好。