Hapları arka plandan bölümlere ayırma


9

Kısa süre önce Görüntü işleme ile başladım ve Grad okulunda bununla ilgili bir ders aldım. Ancak konuyla ilgili çok fazla bilgi olmadan yapacak bir projem var, ancak düzenli bir ilerleme kaydettim. Hapları ilgili geçmişlerinden ayırmaya çalışıyorum. Zıt arka plana sahip görüntüler için, hapları Otsu yöntemini kullanarak bölümlere ayırabildim. Benzer arka plana sahip görüntülerle ilgili olarak, Otsu'nun yöntemi pek işe yaramıyor. Segmentlere ayırma konusunda epeyce makale okudum, ancak okuduğum makalelerin çoğunda görüntü türüne bağlı olarak manuel eşik değeri kullanılıyor. Doğru eşik değerini tespit etmek ve bir görüntüyü otomatik olarak eşleştirmek ve görüntüyü bölümlere ayırmak için tohum büyütme veya kümeleme gibi teknikleri kullanmak mümkün müdür?

Kullandığım renk alanı L a b *, bu yüzden de kullanmam gereken uygun renk alanını önerebilirseniz sevinirim.

Söz konusu görüntüler:

orijinal 1

resim açıklamasını buraya girin

sonuç 1

resim açıklamasını buraya girin

orijinal 2

resim açıklamasını buraya girin

sonuç 2

resim açıklamasını buraya girin

orijinal 3

resim açıklamasını buraya girin

sonuç 3

resim açıklamasını buraya girin


7
Bir resim yükleyebilir misiniz lütfen? Uyarlamalı eşiklemeye ne dersiniz?
Quentin Geissmann

3
Seviye Set etütleri ve Aktif Kontürler ne olacak? Hapları arka plandan sadece yoğunluk değerine (eşik) göre değil, aynı zamanda nesne dokusuna göre de segmentlere ayırabilirsiniz. Kullanılan renk alanı sadece renkler için bir koordinat sistemidir - segmentasyon uğruna görüntünüzdeki renkleri en iyi ayırt edenlerden birini kullanın. Örneğin, görüntüler mor tonlardaysa, kırmızı ve mavi bileşene daha fazla ağırlık koyarak gri tonlamalı dönüştürme kullanabilirsiniz.
Libor


Quentin: Fotoğrafları yüklemek için yeterli itibarım yok.
GamingX

@Syed Herkese açık bir yere yükleyin ve isterseniz soruya bağlantılar ekleyin.
Maurits

Yanıtlar:


2

Eşikleme yaklaşımını kullanmak istiyorsanız, 3. örnek görüntüdeki gibi büyük aydınlatma varyasyonları varsa, uyarlamalı bir eşikleme yöntemi kullanmalısınız ( dsp sorusu burada ).

Ayrıca, renk uzaylarını denemelisiniz, kolaydır: görüntüyü farklı renk alanlarına ayıran komut dosyası birkaç satırdan daha uzun olmamalı ve birçok resim izleyicisinin bu seçeneği vardır. En iyisinin görsel olarak belirlenmesi kolay olmalıdır. Renk uzaylarında okumak istiyorsanız, burada iyi bir dsp sorusu var .

Son olarak, farklı bir yaklaşım denemek isteyebilirsiniz. Bir fikir, mükemmel olmayan bir bölümleme, daha sonra bir kenar algılama ve son olarak da (eksik) daire kemerlerinde iyi çalışan daireler için Hough dönüşümü gibi bir şey kullanmak olacaktır. (bu fikir elbette sadece yuvarlak haplar için geçerlidir)


Mükemmel olmayan bir segmentasyon için iyi bir fikir ne olabilir?
GamingX

@Syed OpenCV Canny (kenar algılama) ve hatta Hough gri görüntülerde çalışır (eşiklemeye gerek yoktur), böylece eşikleme adımını hep birlikte atlayabilirsiniz. Eşik - segmentasyon büyük ölçüde resimlere bağlıdır. Ancak, doğrudan bir cevap olurdu: üzgünüm, bilmiyorum. Adaptif olmayan bir yöntemin yeterli olacağını düşünüyorum, ancak belirli bir yöntem öneremedim çünkü bunu bir süredir yapmadım. Basit segmentasyon yöntemleri hakkında biraz araştırma yapın ;)
penelope

2

OpenCV kütüphanesinden daire hough dönüşümleri bu uygulama için çok uygundur. Bir dizi yarıçap çalıştırmanız gerekecek, ancak en iyi hough yanıtı size hapların sınırlarını ve merkezlerini verecektir. Dairesel olmayan hapları bulmak için genelleştirilmiş hough dönüşümlerini kullanmanız gerektiğini unutmayın. Haplar tıkalı veya kenar noktaları eksik olsa bile çalışacaktır.

Eşikleme buna kötü bir çözüm olabilir, çünkü alanda hiçbir eşiğin hapı arka plandan ayıramayacağı durumlara düşebilirsiniz, bu yüzden kenar gruplarının göreceli konumlarına bağlı bir algoritma daha üstündür.


1

Bu sorunu çözmek için arka planı ve ön planı ayırmanız gerekir. Bu çözüm, size teklif ediyorum:

1) görüntüyü Rgb'den gri tonlamaya dönüştürür; Dediğimiz bir görüntü elde edeceksiniz I1;

2) morfolojik bir filtre uygulayın, büyük bir yarıçap kullanarak erozyon, sonunda birkaç kez ==> hapı erozyonla silmeli ve sadece arka planı almalısınız; Yeni bir görüntü elde edeceksiniz I2;

3) çıkarmak I2için I1, ön plan yani hap elde edecektir;

4) aldığınız haptaki herhangi bir deliği doldurmak için başka bir morfolojik filtre uygulayın;

5) herhangi bir izole piksel kaldırmak için bir morfolojik filtre, erozyon, küçük yarıçap uygulayın.

Bu yöntem herhangi bir eşik, şekil tespiti, renk segmentasyonu veya başka bir şey gerektirmez.

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.