2010-06-30 26 views
11

Bir görüntüye bir Gauss bulanıklığı uygularken, tipik olarak sigma bir parametredir (örnekler Matlab ve ImageJ içerir).Bir resmin Gauss filtrelemesi için optimal sigma?

Sigma'nın ne olması gerektiği nasıl bilinir? Optimal sigmayı anlamanın matematiksel bir yolu var mı? Benim durumumda, görüntülerde arka plana göre parlak olan bazı nesneler var ve bunları hesaplamalı olarak bulmam gerekiyor. Bu nesnelerin merkezini daha da parlak hale getirmek için bir Gauss filtresi kullanacağım, bu da onları bulmayı kolaylaştıracaktır. Bunun için en uygun sigmayı nasıl belirleyebilirim?

cevap

15

Bunu sizin için belirleyecek bir formül yok; Optimal sigma, görüntü faktörlerine bağlıdır - öncelikle resmin çözünürlüğü ve içindeki nesnelerin boyutu (piksel cinsinden).

Ayrıca, Gauss filtrelerinin aslında hiçbir şeyi aydınlatmayacağı anlamına gelmediğini unutmayın; kontrast maksimizasyon tekniklerine bakmak isteyebilirsiniz - histogram gerdirmesi sizin için iyi bir şey gibi basit bir şey gibi sesler.

düzenleme: Daha fazla açıklama - sigma temel olarak çekirdek fonksiyonunuzun nasıl "şişman" olacağını kontrol eder; daha yüksek sigma değerleri daha geniş bir yarıçapta bulanıklaşır. Görüntülerle çalıştığınız için, daha büyük sigma, aynı zamanda, işlevin enerjisini yeteri kadar yakalamak için daha büyük bir çekirdek matrisi kullanmaya zorlar. Özel durumunuz için, çekirdeğinizin nesnenin çoğunu kapsayacak kadar büyük olmasını (böylelikle yeterince bulanık olmasını sağlar), ancak bir seferde birden çok komşu nesnenin üst üste binmesini başaracak kadar büyük olmamasını istiyorsunuz - yani, aslında ayrımı ayrıca boyut ile birlikte bir faktör.

MATLAB sözü beri - Eğer hsize çekirdeğin büyüklüğü ve sigma de, sigma olduğunu fspecial('gaussian', hsize, sigma) fonksiyonunu kullanarak farklı parametrelerle çeşitli Gauss çekirdekleri bir göz alabilir. Nasıl değiştiğini görmek için parametreleri değiştirmeyi deneyin.

+0

@tzaman: Optimal sigma'nın görüntünün çözünürlüğüne ve nesnelerimin piksel cinsinden boyutuna nasıl bağlı olduğunu genişletebilir misiniz? ya da yapabiliyorsan beni okumalar yönünde yönlendir. tam olarak aradığım şey bu. Ayrıca, parıltılı sesleri de duydum; Nesnelerimin merkezinin diğerlerine göre nispeten parlak olmasını istediğimi söylemek istedim. – sepiroth

+0

@hatorade: Cevabımı genişlettim; umarım şeyleri açıklığa kavuşturur. – tzaman

+0

@tzaman: Bir web sitesinde (http://imaging.mrc-cbu.cam.ac.uk/imaging/PrinciplesSmoothing) Yarım En Yüksek (FWHM) ölçekteki Tam Genişliğin bir denklem olduğunu okudum. Bu kavram çekirdeği koruyor mu? ImageJ veya Matlab'da olduğu gibi, çekirdeğin "FWHM" si sigma ile aynı şekilde mi? Sormamın nedeni, genellikle parametrelerin çekirdek boyutları ve sigma olmasıdır, fakat bu sigma efektlerini çekirdek boyutlarını okumaya devam ediyorum ... – sepiroth

0

Bir işlevin min/maks değerini bulmak zorundasınız ki G (X, sigma), X'in sizin gözlemlerinizin bir kümesidir (sizin durumunuzda, görüntü gri tonlama değerleriniz), Bu işlev, korunan her şey olabilir. iamge yoğunluklarının "düzen", örneğin, bu

fil = fspecial('sobel'); 
im = imfilter(I,fil); 
imagesc(im); 
colormap = gray; 

bu şimdi, size resmin birinci türevi sonucunu verir (G gibi) görüntünün 1 türevi ile yapılabilir maximzing G (X, sigma) tarafından max sigma'yı bulmak istiyorsunuz, yani G maksimal yapan bir sigmaya ulaşıncaya kadar birkaç sigma deniyorsunuz demektir. Bu, ikinci türev ile de yapılabilir.