5

Görüntülerimı yeniden boyutlandırmak için PIL kullanıyorum, durumum orijinal resmi büyütmektir.ANTIALIAS vs ANTIALIAS?

'resample = ANTIALIAS' ile kullanılan algoritma konusunda kafam karıştı.

Aşağıdaki belgeye göre, ANTIALIAS ölçekleme yaparken en iyisi gibi görünüyor. Ben Hangi durumda BICUBIC kazanabilir acaba?

An optional resampling filter. 
    This can be one of NEAREST (use nearest neighbour), 
    BILINEAR (linear interpolation in a 2x2 environment), 
    BICUBIC (cubic spline interpolation in a 4x4 environment), 
    or ANTIALIAS (a high-quality downsampling filter). 
If omitted, or if the image has mode “1” or “P”, it is set NEAREST. 

Ben de belgede linear interpolation in a 2x2 environment ve cubic spline interpolation in a 4x4 environment hakkında karıştı (benim test durumda bazı bikübik daha iyi bir seçimdir gösterir). Burada ne anlama geliyor?

Teşekkürler.

+0

Vay. Her zaman PIL'nin biraz berbat olduğunu biliyordum, ama kodlara bakana kadar ne kadar fark ettim. Daha sonra tam bir araştırma yapmaya çalışacağım. Bazı test durumumda –

cevap

0

Bunlar en düşükten en yüksek karmaşıklığa göre sıralanmıştır. Aralarında görsel farklılıklar olacak. Ana fark, algoritmanın ne kadar sürdüğü olacaktır.

Size neyin, hızın veya kalitenin daha önemli olduğuna karar vermelisiniz. Sadece 5 görüntü yapıyorsanız, kaliteye gidin. Eğer 100.000 görüntü yapıyorsanız, belki de hız için gidin. Gerçekten ne için kullandığınıza bağlı.

2x2 ve 4x4 ortamı, algoritmanın 2x2 veya 4x4 piksel alanında göründüğü anlamına gelir.

+0

, bicubic en iyisidir. Bunu açıklayabilir misin? – xunzhang

+1

Hepsinin güçlü ve zayıf yönleri var, gerçekten de kaynak görüntüye bağlı. Bazı algoritmalar keskin kontrastlı görüntüler için daha iyi görünebilir, diğerleri doğal sahneler için daha iyi çalışabilir. – aglassman

+0

bunu soruyorum ... – xunzhang

11

Şimdi ayrıntıları öğrenmek için kaynak üzerinden gittim. Gördüğüm şeyden çok memnun değilim.

İlk olarak, BICUBIC. En yaygın olanları Catmull-Rom interpolasyonu olan bikubik olarak sınıflandırılabilen bazı formüller vardır. Bu PIL'in kullandığı değil. Don Mitchell ve Arun Netravali, tüm varyasyonları analiz eden ve iki değişken B ve C kullanarak bunları karakterize eden bir makale yazdı; PIL tarafından kullanılan, B = 0 ve C = 1'e karşılık gelir. Mitchell-Netravali gazetesinde, bu açıkça Ringing artifact bölgesinde. Bu, büyütülmüş görüntülerin kenarlarda doğal olmayan parlak veya karanlık haleler olacağı anlamına gelir.

Sonraki sayfa ANTIALIAS. Bu, normalde hem küçültme hem de büyütme için iyi bir seçenek olacak bir Lanczos-3 filtresine dayanmaktadır. Ne yazık ki, kodlamada kodda bir hata var - sonucu hesaplamak için 6x6 piksellik bir alana girmek yerine, 2x2 pikselde kesiliyor. Bu, bilineardan çok daha iyi yapar.

+0

Bu sorunları PIL'ye rapor ettiniz mi? ve hala sorun olup olmadığını bilmek ister misiniz? –

+0

@GordonWrigley Hayır ve hayır. Yastık üzerinde aktif gelişmelerden şüpheleniyorum. –