2010-12-07 10 views
9

Büyük havai işleyicileri (genellikle 1GP'den fazla) Deep Zoom görüntü formatına dönüştürmek için deepzoom.py adında bir python betiği kullanmaya çalışıyorum (ör. Google maps-esque tile formatı), ancak maalesef PIL tarafından desteklenmektedir. genellikle bellek sınırlamaları nedeniyle çöküyor. İçerik oluşturucu, VIPS'yi incelediğini, ancak nip2'nin (VIPS için GUI ön yüzünde) resmi açmayı başaramadığını söyledi. (Aynı konu üzerinde olsa da) başkası tarafından başka bir soru, birisi o yeteneği vardır, ve Python sarmalayıcıları vardır, ama sağlanan uygun ikili orada değildir ve Windows üzerinde derlemek için çalışan bir gibi görünüyor, hangi OpenImageIO önerdi kâbus.Python'da büyük (potansiyel olarak 30000x30000'ün üzerinde) görüntülerle ilgileniyor musunuz?

Kullanabileceğim Python için alternatif kütüphaneler var mı? PythonMagickWand'i (ImageMagick için sarıcı) ve PythonMagick'i (GraphicsMagick için sarmalayıcı) denedim, ancak bunların her ikisi de bellek sorunlarıyla karşılaşıyor.

+0

Ne OpenImageIO için Linux kullanmanızı engelleyecek? Küçük bir harici sabit sürücü edinin ve kurun (veya kullanılmamış bir dahili sürücü). Ayrıca, sistem özelliklerinin göreve bağlı olduğuna da inanıyorum. Daha küçük görüntü içine kadar bölme ve bunları da dönüştürme deneyebilirsiniz –

+0

Doğru kurmak için çok fazla yapmamıştı rağmen ben başarısız sonuçlarla, daha önce olduğu çalıştı. Belki bu saçma geliyor, ama Windows'da betiği çalıştırmayı denediysem uyumlu olmayacağını düşündüm. – Nicolas

cevap

1

Coğrafi yönelimli görüntüleri veya benzer bir şeyi kullanmaya çalıştığınız gibi, GIS çözümünün daha uygun olduğu seslere benzer. Ben GDAL kullanıyorum - mükemmel bir kütüphane ve Swig üzerinden kullanımı kolay Python bağlamaları ile birlikte geliyor. Windows'ta

, yüklemek için en kolay yolu Frank Warmerdam en FWTools paketin üzerinden gerçekleştirilir.

+0

Bu mükemmel. Bir artı da olan piramit oluşturma araçlarını da dahil ediyor gibi görünüyor. Şerefe! – Nicolas

+0

Hmm, görünüşte değil. GDAL, görüntüyü açmaya çalışırken "Yetersiz bellek" i döndüren libjpeg'e dayanır. Belki de onunla bir şey yapmadan önce (bir şekilde) ham biçime dönüştürmem gerekiyor. Bir linux VM üzerinde derlemeye çalışacağım ve nasıl gittiğini göreceğim. – Nicolas

+0

@Nicolas: Hmm ... GDAL'in hafızaya sığmayacak kadar büyük boyutlu görüntülerle çalışabileceğini biliyorum. JPEG sürücüsünü yoğun kullanmamıştım, bu yüzden üzerine yorum yapamam, ancak ham formatta daha iyi bir başarı elde etmenizi beklerdim. –

0

kısmi yük yararlı mı? PIL kullanırsanız ve görüntü formatı .BMP ise: bir resim dosyasını (yükleyemez) açabilir(), sonra bir kırpma() yapabilir ve yükleyebilirsiniz - ki bu sadece resmin bir kısmını yükleyecektir. Ürün tarafından seçildi. Muhtemelen TGA ile, belki de JPG için ve PNG ve diğer formatlar için daha az verimli çalışacaktır.

2

Çok benzer bir sorunla karşılaştım ve Windows üzerinde iyi çalışan netpbm kullanarak çözdüm. Netpbm, büyük .png dosyalarını dönüştürmek ve daha sonra dilimlemek, kırpmak, yeniden birleştirmek (pamcrop, pamdice ve pamundice kullanarak) ve çok fazla bellek kullanmadan .png'ye dönüştürmekle ilgili hiçbir problem yaşamadı. Gerekli netpbm ikilileri ve dosyalarımı uygulamam ve python'dan aradım.

1

Son libvips, 7.32, herhangi bir boyuttaki görüntülerle çalışabilen çok hızlı bir DeepZoom yaratıcısıyla birlikte gelir.

$ vips dzsave huge.tif mydz 

mydz_files için fayans yazacak ve de sizin için bir mydz.dzi bilgi dosyası yazmak: deneyin.

dzsave bir giriş için this blog post bakınız.

İlgili konular