2016-01-30 55 views
2

我要创造我自己的谷歌地图一样this:如何处理大图像?

我的问题是,我无法加载和编辑我的高画质图像。

我的图片:

  • PNG/JPG
  • 700 MIB
  • 300000px X 300000px

我尝试:

  • ImageMagick的
  • .NET C#/ BitmapImages ...
  • C++/OpenCV的
  • 一般的图像类在Java和Python

用的语言/库我可以编辑这些大的图像。

+5

尝试将大图像转换为许多较小的图像,并将它们拼凑在一起,就好像它们是一个大图像一样。 – asdfasdfadsf

+1

问题是,您有多个图像(300,000 x 300,000)约为〜167GB大(考虑每个组件4位,每像素16位)。想象一下,必须把它存储在内存中!正如@JasonHeddle所说的,你需要将图像分割成更小的图像。毕竟,试图在1080p屏幕上显示这么多像素是毫无意义的;) –

+0

正确的想法......但是@PhilippeParé的确说“* 700MB *”和“* PNG/JPG *”,它们粗略地说是无损的,有损图像压缩的种类,所以也许它们实际上并不像167GB那么大。 – uhoh

回答

0

这不是一个完整的答案,但我需要多一点空间比评论可以给。

查看ImageMagickdiscussion board上的large image support部分。

This answer提到VIPS package可能会对您有所帮助。

您也可以考虑在photography stackexchange张贴,甚至blender stackexchange - 比如我看到this answer其中提到写入单个image tiles - 也here,虽然这问题是关于渲染。 Blender并不专门用于图像处理和编辑,但它非常出色且灵活,并且拥有非常活跃和支持性的社区。你也可以在Blender中使用python。

你也可以考虑在gis stackexchange询问。

当您在其他stackexchanges中发布时,请首先查看一下,并确保您编写问题的目的是为了避免该问题与该网站的主题无关。

祝你好运 - 看起来平铺无处不在!

2

我保留VIPS,一个图像处理库,设计用于处理非常大的图像。它是免费的,适用于Linux,Mac和Windows。您可以从命令行,C/C++,Python或Ruby中使用它。

你可以在命令行像这样让你的谷歌地图瓦片:

vips dzsave hugefile.tif myoutputdir --layout google

,它会扫描你的巨大的TIFF图像并产生所有的瓷砖。它速度很快,它只需要很少的内存,它可以处理任何大小的图像。我经常使用我的小型笔记本电脑从显微镜幻灯片制作200,000 x 200,000深度缩放图像。

有一个post on the VIPS blog介绍dzsave并解释如何使用它。