2016-01-30 124 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並解釋如何使用它。