使用Python进行分形图像缩放

时间:2009-11-17 17:02:46

标签: python image-processing python-imaging-library fractals

我处于提供相对低分辨率图像的位置(通过API,无法获得更高分辨率的图像),并且需要生成高分辨率图像。

我已经看了PIL,这对于所有事情都很棒......除了放大图片外。

它有共同的resizing algorithms

  • 最近邻居
  • 双线性
  • 双三次
  • 消除锯齿

我想使用Fractal Resizing(根据jeff's post on coding horror),但唉,PIL不支持这种调整大小。

进一步的Google搜索不会产生任何替代库来提供分形图像调整大小。

是否存在这样的事情,或者我真的不得不扣下并编写自己的分形调整算法?

我不是专家,但从我目前的观点来看,这看起来像一条相当陡峭的学习曲线:(

如果不存在这样的库,也许你有一些建议去哪里学习分形压缩算法?

3 个答案:

答案 0 :(得分:9)

有算法,你绝对不会在Python中找到它们。首先,您可以使用此paper

Daniel Glasner,Shai Bagon和Michal Irani,“单一形象的超级决议”,载于IEEE国际计算机视觉会议论文集,日本京都,2009年。

这是非常先进的技术,非常复杂,并且产生了有希望的结果。如果您将它变成python实现,请将其发布给公众:)

答案 1 :(得分:2)

基于分形的图像缩放仍然非常不寻常,并且尚未确定为一种接受最佳算法。我担心你不会在标准图像处理库中找到它。

它也不总是优于双三次方。它可能具有对于某些类型的图像而言不合需要的伪像。对我来说,杰夫的示例图像在尖锐的边缘周围看起来有点奇怪和不自然,就像鼻子的右手边一样。对于某些“更好”的值更好,当然,但我不会将它应用于我的所有图像。

(其他'高级'升级技术也是这种情况,包括更为人熟知且更广泛实施的Lanczos/Sinc方法。)

答案 2 :(得分:1)

使用残差密集网络查看此解决方案: https://github.com/idealo/image-super-resolution

良好的文档并且相当容易实现。他们甚至可以使用 docker builds 和 google collab notebooks。请参阅docs