Çeşitli görüntü yeniden örnekleme yöntemleri arasındaki pratik farklar nelerdir?


22

Mathematica'nın ImageResizeişlevi birçok yeniden örnekleme yöntemini destekler .

Bu bölgeye aşina olmamak, en yakın komşunun ötesinde, bilinear, biquadratic ve bicubic (isminden açıkça anlaşılıyor) kayboldum.

Beni bu yöntemler arasındaki temel (matematiksel) farklılıkları açıklayabilecek bir kaynağa ve özellikle de pratik farklılıklara işaret edebilir misiniz (örneğin, yöntem seçiminin gerçekten gözle görülür farklılıklar getirdiği ve ortaya çıkardığı örnek görüntüleri göstererek)?

Bir sinyal işleme geçmişim yok, bu yüzden "yumuşak" ve özlü bir tanıtım yapmayı tercih ederim :-)


Buraya ImageResize"tembel" olanların linkini tıklayacak yöntemler listesini buraya kopyalayacağım :

  • "En yakın" en yakın komşu örneklemesi

  • "Bilinear" bilinear enterpolasyon

  • "Biquadratic" biquadratic spline enterpolasyonu

  • "Bikübik" bikubik spline enterpolasyonu

  • "Gaussian" Gauss örneklemesi

  • "Lanczos" Lanczos çok değişkenli enterpolasyon yöntemi

  • "Kosinüs" kosinüs enterpolasyonu

  • "Hamming" yükseltilmiş-kosinüs Hamming enterpolasyonu

  • "Hann" yükseltilmiş kosinüs Hann enterpolasyonu

  • "Blackman" üç vadeli genelleştirilmiş yükseltilmiş kosinüs

  • "Bartlett" üçgen pencere enterpolasyonu

  • "Connes" kare Welch enterpolasyonu

  • "Welch" Welch ikinci dereceden enterpolasyonu

  • "Parzen" parçalı küp enterpolasyon

  • "Kaiser" sıfır dereceli modifiye Bessel enterpolasyonu


1
Soru bana çok geniş görünüyor. Özel yöntemlere ayırmak ve problemleriniz olan yöntemlere özel sorular sormak iyi bir fikir olacaktır.
mirror2image

Sorunuza Biraz teğet, bu görüntü örnekleme karşılaştırma ilginç bulabileceğini edilebilir: general-cathexis.com/interpolation/index.html
Mr.Wizard

Yazdığınız tüm metotların Space Invariant olduğuna dikkat ederdim. Örnekleme için daha modern yöntemlerin Edge Aware ve Space Variant olduğunu düşünüyorum.
Royi

İşte sondan fazla dönüşüm. PB dönüşümü olarak adlandırılır ve görüntüyü, diğer birçok görüntü üzerinde eğitildikten sonra ne olacağı olasılığına göre değerleri bikubik olarak tahmin ederek dönüştürür. İşte [sonuç] [1] neye benziyor. [1]: v1.std3.ru/57/a9/…
MyBushisaNeonJungle

Yanıtlar:


12

tamsayıları olan bir görüntü göz önüne alındığında , bu görüntünün herhangi bir isteğe göre noktasında enterpolasyonu olarak yazılabilir.m , n m , n I(m,n)m,nm,n

I~(m,n)=m=mw+1m+w n=nw+1n+wI(m,n) f(mm,nn)

sonucu hala sadece gerçek altta yatan sürekli imge yaklaşık bir sonucudur ve farklı enterpolasyon fonksiyonlarının yaptığı tek şey, farklı sınırlamalar ve hedefler altındaki yaklaşım hatasını en aza indirmektir.I~I(x,y)

Sinyal işlemede enterpolasyon işlevinin ideal düşük geçiş filtresi olmasını istersiniz . Bununla birlikte, frekans tepkisi sonsuz destek gerektirir ve sadece bant sınırsız sinyaller için kullanışlıdır. Görüntülerin çoğu bantsız değildir ve görüntü işlemede göz önünde bulundurulması gereken başka faktörler de vardır (örneğin, gözlerin görüntüleri nasıl yorumladığı gibi. Matematiksel olarak en uygun olan görsel olarak çekici olmayabilir). Pencere işlevlerine çok benzeyen enterpolasyon işlevinin seçimi , eldeki özel probleme çok bağlıdır. Connes, Welch ve Parzen'i duymadım (belki de alana özeldirler), ancak diğerleri yukarıdaki Wikipedia bağlantısında verilen bir 1-D penceresi için matematiksel fonksiyonların 2-B eşdeğerleri olmalıdır.f(m,n)

Tıpkı zamansal sinyaller için pencere fonksiyonlarında olduğu gibi, bir görüntü enterpolasyonlu çekirdeğin frekans tepkisine bakarak ne yaptığını anlamak kolaydır. Gönderen pencere fonksiyonları üzerine cevabım :

Pencere işlevini tanımlayan iki ana faktör şunlardır:

  1. Ana lobun genişliği (yani, hangi frekans selesinin maksimum yanıtın yarısının gücü olduğu)
  2. Yan lobların zayıflaması (yani, yan lobların ana lobdan ne kadar uzakta olduğu). Bu, penceredeki spektral sızıntı hakkında bilgi verir.

Bu, enterpolasyon çekirdekleri için de geçerlidir. Seçim temel olarak frekans filtreleme (sidelobes zayıflatması), mekansal lokalizasyon (ana lob genişliği) ve zil (Gibbs efekti), takma, bulanıklaştırma, vb. Gibi diğer efektleri azaltma arasında bir takas şeklindedir. sinc çekirdeği ve Lanczos4 çekirdeği görüntüde "çalma" yapacaktır , oysa Gaussian bir yeniden örnekleme çalmaya başlamaz .

Mathematica'da farklı enterpolasyon fonksiyonlarının etkilerini görmenizi sağlayan basitleştirilmiş bir örnek:

true = ExampleData[{"TestImage", "Lena"}];
resampling = {"Nearest", "Bilinear", "Biquadratic", "Bicubic", 
   "Gaussian", "Lanczos", "Cosine", "Hamming", "Hann", "Blackman", 
   "Bartlett", "Connes", "Welch", "Parzen", "Kaiser"};
small = ImageResize[true, Scaled[1/4]];

Burada, truebir "tam" görüntünün farklı eşdeğer olduğu kabul görüntüsünü temsil , ve daha küçük bir çaplı görüntüsünü temsil (nasıl bilmezler elde edilmiştir). Orijinaline aynı boyutta vermek üzere 4x ile enterpolasyon yapacağız . Aşağıda, bu enterpolasyonun sonuçlarını ve gerçek imajla karşılaştırmasını gösteriyorum:I ( m , n ) I ( m , n ) ˜ I ( m , n )I(x,y)smallI(m,n)I(m,n)I~(m,n)

görüntü tanımını buraya girin görüntü tanımını buraya girin

Farklı enterpolasyon işlevlerinin farklı etkileri olduğunu kendiniz görebilirsiniz. En yakın ve birkaç diğerleri çok kaba özelliklere sahiptir ve esasen pürüzlü çizgileri görebilirsiniz (ızgara görüntüsünü değil, tam boyutlu görüntüyü görebilirsiniz). Bikübik, biquadratic ve Parzen bunun üstesinden gelmekle birlikte çok fazla bulanıklığa neden olmaktadır. Tüm çekirdeğin içinde, Lanczos (görsel olarak) en çekici ve partinin en iyi işini yapan kişi gibi görünüyor.

Bu cevabı genişletmeye çalışacağım ve zamanım olduğunda farklılıkları gösteren daha sezgisel örnekler sunacağım. İnternette bulduğum bu oldukça kolay ve bilgilendirici makaleyi okumak isteyebilirsiniz (PDF uyarısı).


Gördüğüm şu ek gösterimi mi? : ->
Mr.Wizard

@ Mr.Wizard Dürüst bir girişimde bulunacağımı söyledim :)
Lorem Ipsum
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.