2014-10-20 16 views
8

Görüntü filtresinin imfilter komutuyla log filtresiyle ilişkisini aldım.Neden LOG filtresi siyah arka plan görüntüsünü döndürüyor?

z=imfilter(I,fspecial('log',11,1.5)); 
figure 
imshow(z); 

Resim:

enter image description here

+0

Şovlarım'a maksimum eşleme ölçekli yeniden hangi bize bazı kodlar ve bazı sonuçlar! Tek bir çizgi ile tüm bir süreç processin gproblem anlayabilseydim keşke :(., Senin imge uint8 veya çift mi? –

+0

Görüntüler gönderilemedi:/10 ya da böylece noktaları ile gecikme nedeniyle, ancak örnek kod aşağıdaki gibidir z = imfilter (I, fspecial ('log', 11,1.5));% I görüntü 11 maske boyutu ve 1.5 is sigma değeri şekil, imshow (z); –

+0

Bir yere yükleyin ve ben linki yayınlayacağım. –

cevap

4

yok.

+0

"im2double" ifadesinin sadece "double" olarak değil, "im2double" olarak da adlandırmak yerine '[0,1] 'arasında olacak şekilde yoğunlukları normalleştireceğini düşünürdüm.Sadece 'çifte' yapmak, bunu yapmayacaktır. Ayrıca, "varsayılan" 'uint8' içinde bir görüntüde' imread' yükleme teknik olarak doğru değildir. Her bir pikselin hassasiyeti, 'imread' parçasının ayrıştırdığı ve incelediği görüntünün başlığında tanımlanır. Örneğin, TIF 8, 16 veya 24 veya 32 bit olabilir. Sadece görüntülerin çoğunluğu yoğunluk/renk başına 8 bit kullanıyor, bu yüzden doğal olarak "varsayılan" olduğunu düşünüyoruz. – rayryeng

+1

fakat im2double bu durumda işe yaramayacaktır çünkü yoğunluklar [0,1] 'de yatar ancak yoğunlukları normale döndürmek istemeyiz, eğer böyle yaparsak sonuçta ortaya çıkan görüntü siyah olur. Sonuçlar. –

+1

Saçma sapan. "çift" tipi görüntüler için imshow **, siyahla beyaz arasındaki yoğunlukları görselleştirmek için ** [0,1] 'arasında yoğunluğa sahip olacak şekilde tasarlanmıştır. Yorumunuz için size +1 oy veren kişi, ne hakkında konuştuklarını da bilmiyor. – rayryeng

3

sahip sorun düzgün sonucunu gösteren olmamasıdır.

Sonuçlarınız 0-31 aralığındadır, ancak bunu çizmek için 0-255'e dönüştürmeniz gerekir!

imread komut varsayılan unit8 (işaretsiz int) formatında görüntü sürdüğü sorunu çözer (çift duyarlıklı) iki katına görüntü dönüştürme

imshow(mat2gray(z)) 

enter image description here

+1

Sonuç Neden 0-31 aralığında? –

+0

Bir günlük filtresi uyguladığınızdan ve filtre sonucu normalleştirmediğinizden. –

+3

@AnderBiguri - Ayrıca, minimum ve maksimum değerlerin '[0,1]' ile eşleneceği ekran için sonuçları normale döndüren, imshow (z, []) 'da yapabilirsiniz. Aksi takdirde, iyi nokta! – rayryeng

2

Bu sorunu çözmenin en iyi yolu görüntünüzü değiştirmek değil, imshow görüntü biçimini değiştirmek değildir. Bu deneyin:

>> imshow(z, [0, 31]); 

Veya daha iyisi, bu deneyin:

>> imshow(z, []); 

otomatik görüntü, 0 minimum değeri ve 255

İlgili konular