Görüntü aşağı örnekleme için düşük geçişli filtre parametreleri


11

I'in bir faktör bir görüntü downscale gerekir yatay ve dikey ( , < ).s y s x s y 1sxsysxsy1

Aşağı örneklemeden önce sonlu bir alçak geçiren filtre kullanmak istiyorum .nxm

ve bir işlevi olarak için düşük geçişli filtre parametrelerini ( ve Gaussian ) nasıl ?σ s x s yn,mσsxsy

Özellikle, olduğunda .sx=sy=1/2


ile ilgili soru [burada sorulan] [1] [1]: stackoverflow.com/questions/3149279/…
isrish

1
Teşekkürler, ancak bu soru, ölçek küçültme faktörünün bir işlevi olarak filtre parametrelerinin nasıl belirleneceği ile ilgili değildir.
Ben-Uri

Ne kadar filtre uygulamak istiyorsunuz? Amacın nedir?

1
Aliasing önlemek için aşağı örnekleme önce bir düşük geçiş filtresi kullanmak istiyorum. Takma ad vermeden mümkün olduğunca çok bilgiyi korumak istiyorum.
Ben-Uri

1
Frekansları örneklenen sonucun Nyquist sınırının altında tutarken diğer adlandırma frekanslarını ne kadar iyi keseceğini bilmek için filtrenin Fourier dönüşümüne bakmanız gerekir. Bir gaussian'ın dönüşümü başka bir gaussian, yani keskin bir kesme yoktur. Neredeyse her zaman daha iyi bir seçim var.
Mark Ransom

Yanıtlar:


4

Her iki görüntü arasındaki Nyquist frekansındaki değişikliği düşünmelisiniz. Orijinal görüntünün Nyquist frekansı N ise, altörneklenen görüntü daha düşük bir Nyquist frekansına (xN) sahip olacaktır; burada x, son görüntü ile ilk görüntü arasındaki boyutların oranıyla ilişkilidir. Altörneklemeden önce orijinal görüntüde xN'den daha yüksek olan uzamsal frekansları kaldırmanız gerekir.

Görüntü alanındaki bir Gauss'un güç spektrumu, aynı zamanda frekans alanındaki bir Gauss'dur. İkinci boyutu bir an için görmezden gelirsek, resim alanındaki Gaussian, exp (-x ^ 2 / s ^ 2) olarak tanımlanır; burada x, piksellerinizi temsil eder. Bu, frekans uzayına exp (-w ^ 2 * s ^ 2) olarak eşlenir; burada w frekanstır. Sigma parametresi (leri), görüntü alanındaki geniş bir Gaussian'ın frekans alanındaki dar bir Gaussian'a karşılık geldiğini gösterir.

Aşağı örneklenen görüntünün Nyquist frekansına karşılık gelen frekansta frekans alanında çok düşük bir değer veren bir sigma parametresi seçmek istersiniz.


Doğru, ama bunu nasıl ayrı bir evrişim çekirdeğine çevirebilirim? (soru
buydu

düzenleme pls bakın ...
NoNameNo

Teşekkürler, ancak yine de sigma'yı çıktı sonucunda olması gereken maksimum frekansın bir fonksiyonu olarak bulmak için bir formül var mı?
Ben-Uri

hiçbir formül bilmiyorum.
NoNameNo

1

ve m'nin σ'ya göre seçileceği zaten belirtilmişti .nmσ

Ben almak için bazı zaman düşünme geçirdim iyi. İşte düşüncelerim. tl; dr: Belki bir hata yaptım, ama σ 23.37 faktör 2 ile aşağı örnekleme için iyi bir seçim gibi görünüyor.σσ23.37


0

Büyük bir küçülme (2x, 3x, 4x diyelim) yapıyorsanız, iyi bir kenar yumuşatma elde etmek için piksel ortalaması alabilirsiniz. Bu yüzden anti-aliasing video oyunlarının daha net görünmesini sağlamak için çok fazla ek CPU / GPU kullanıyor.

1000x1000 boyutundan 707x707 boyutuna (yalnızca ölçek faktörü için bir örnek) gittiğiniz için, takma adın sorun olabileceği konusunda haklısınız.

Neyse ki bu, birçok insanın zaten karşılaştığı ve çözmek için biraz iş yaptığı bir sorundur. Birçok durumda, bikubik enterpolasyon gitmek için bir yoldur. Burada farklı enterpolasyon yöntemlerinin nasıl göründüğüne dair bazı örnekler vardır:

http://www.compuphase.com/graphic/scale.htm

OpenCV'nin yeniden boyutlandırması yerleşik olarak şu yöntemlerden birkaçına sahiptir:

http://opencv.willowgarage.com/documentation/cpp/geometric_image_transformations.html#cv-resize

Bu enterpolasyon yöntemlerinden birkaçı ile zaten oynadıysanız ve iyi çalışmıyorsa, lütfen bir tür örnek kaynak resim ve eksiklik gösteren örnek sonuç resmi gönderin. Sorunu teşhis etmek ve iyi bir çözüm bulmaya çalışmak için buna ihtiyacımız olacak.


hızlı olmasına rağmen, piksel ortalamasının kalite için ideal bir çözüm olmadığını belirtin. piksel ortalaması etkili bir rect filtresi uygular. frekans uzayında, bu Nyquist'in harmoniklerinde sıfır geçişle salınan samimi bir fonksiyonla çarpmaya eşdeğerdir. bunun iki problemi vardır: 1. yüksek frekansı zayıflatır, ancak o kadar değil 2. diğer her iki yan lobda fazı tersine çevirir. Hem (1) hem de (2) diğer adlara katkıda bulunabilir.
Ocak'ta thang

0

Sizin için gerçekten iyi bir cevabım yok, ancak deneyebileceğiniz 2 seçenek var:

  • σ3σ
  • ince sinyal örnekleme hesaplamaları yapmak istiyorsanız, neden Fourier dönüşümü kullanmıyorsunuz? Resminizin FFT'sini alın, yalnızca hedef boyutunuza karşılık gelen alt parçayı saklayın ve dönüşümü ters çevirin. Bu, spektrumunuza bir kenar yumuşatma filtresi uygulayacaktır. Sizin için çok fazla eser (dalgalanmalar, zil sesi) varsa, genişliği hedef boyutunuza karşılık gelen Gauss filtresi spektrumunuza uygulayın.

0

s=1/2

[1,2,1]T[1,2,1]

Hatalısınız. 0.25'lik bir ölçek faktörünü unuttunuz mu? ... ve eğer öyleyse, bu s = 1/2 değil 1 / sqrt (0.5) için ortak bir seçimdir.
Ben-Uri

@ Ben-Uri'nin alması hakkında bir yorumunuz var mı? Sistem, uzunluğu nedeniyle bu yazıyı düşük kaliteli olarak işaretliyor. Lütfen gözden geçirmeyi veya kaldırmayı düşünün.
Peter K.

1
ss2

ssσσsx,sy
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.