2013-02-18 13 views
7

Çamurda Tiger's Pugmark (ayak izi izi) görüntüsüne sahibim. Ben pugmark sınırını belirlemek istiyorum ama görüntü yoğunluğu ve arka plan yoğunluğu varyasyonlarına göre ayırt edilemez yoğunlukta eşittir. Pugmark ve arka plan arasında ayrım yapmak için ne yapabilirim! segmentasyon görevler iseHomogeneous Intensity görüntüsünde tespit nesnesi

tiger's pugmark http://imageshack.us/a/img407/4636/p1060993g.jpg

+1

Sorun, düşündüğünüzden muhtemelen daha zor. Bu sınırın daha fazla kullanılmasını, yani hangi hassasiyete ihtiyacınız olduğunu açıklarsanız yardımcı olabilirsiniz. Sadece pugmarkı tespit etmek veya yönünü bilmek istiyorsanız, kesin bir sınır gerekli değildir. –

+0

mahkum oldunuz. : - (..... Bu son derece zor bir görüntü işleme görevidir. – Shai

+0

@RomanShapovalov Neden özellikle sınırları işaretlemem ve ilgisiz bölgeyi atmam gerektiğini söyleyeyim.Pugmarkı analiz etmem ve bazı seçilmiş özellikleri temel almalıyım Ped alanı, ayak bölgesi, ayak 2 ve 3 arasındaki açı, pugmark uzunluğu, genişlik vb. gibi ve sonra analiz görüntüsünü eğitim seti ile karşılaştırdıktan sonra hangi kaplanın pug işaretini ayırt edebilmem gerektiğini bilmeliyim. – Suvidha

cevap

7

hem

  1. İyi işaretleri varsa; ve

ilgi nesnenin etrafında

  • güçlü kenarlar daha sonra, doğrudan dönüştürme Havzalarında çözülmektedir. Sorun, elbette, bu işaretleyicileri elde etmek ve gerektiğinde ilgili kenarları arttırmaktır. Bunları elde etmek probleminize özgü olmayan, problemlere özel bilgi içerebilir. Bununla birlikte, faydalı olabilecek bazı genel yöntemler vardır. Örneğin, Matematiksel Morfolojiden bağlı operatörler, düz bölgeleri birleştirme ve genişletmenin bir yolu olarak hizmet eder. Böylece, belki de bize sorun için nispeten iyi belirteçler verebilir. Aşağıdaki görüntüde, orijinal görüntünün gri tonlama versiyonunda (bir çeşit bağlı operatör) açılarak bir morfolojik yeniden yapılandırma gerçekleştirilmiştir (soldaki görüntü) ve kalan bölgesel maksimum sağda gösterilmiştir.

    enter image description hereenter image description here

    Şimdi, yukarıda sol görüntünün morfolojik eğimi elde edebilirsiniz. Ayrıca, daha düzgün bir kontur oluşturmak için yukarıdaki sağ görüntüde küçük bir diskle delik doldurma ve bir genişleme yapabiliriz - bu, markör imgemizi tanımlar. Daha sonra, Havza bizim işaretleyici görüntü kullanılarak ve ardından genişleyen degrade görüntüde Transform uygulayarak havza hatları (aşınmaya veya dilate bunu nasıl gördüğünü bağlıdır), aşağıdaki görüntü elde:

    enter image description here

    I Çok büyük ve çok küçük bölgeleri kolayca atabileceğinizden şüphelenirsiniz. Daha sonra, avuç için de pençeler için beklenen pürüzlü boyutlarınız varsa, ilgisiz bölgeleri atabilirsiniz. Bu noktada tek bir bileşenini oluşturmaktadır ve elde edilen orijinal görüntüdeki kontur göstermeye alanları açmada meselesi olduğunu: her adımı gerçekleştirmek için

    enter image description here

    Numune kodu (ilgili adımlar da gösterilmektedir kullanılan algoritmalar her resim için özel olabilir parametrelerin ayarını gerektirdiği için

    f = Import["http://imageshack.us/a/img407/4636/p1060993g.jpg"] 
    g = ColorConvert[f, "Grayscale"]       (* g = rgb2gray(f); *) 
    (* First image shown: *) 
    geo = GeodesicOpening[g, DiskMatrix[5]] (* geo = imreconstruct(imerode(g, ... *) 
                 (*   strel('disk', 6)), g);  *) 
    (* Second image shown: *) 
    marker = MaxDetect[geo]      (* marker = imregionalmax(geo); *) 
    
    (* Watershed on gradient with markers. *) 
    mgrad = ImageSubtract[Dilation[geo, 1], Erosion[geo, 1]]; (* mgrad = ...  *) 
          (* imdilate(geo,strel('square',3)) - imerode(geo,strel('square',3)); *) 
    ws = Image[   (* ws = watershed(imimposemin(mgrad, bwmorph(imfill(... *) 
    WatershedComponents[mgrad,  (* imregionalmax(geo),'holes'),'dilate')))); *) 
        Dilation[FillingTransform[marker], DiskMatrix[1]]]] 
    
    (* Third image shown: *) 
    wsthick = Erosion[ws // ImageAdjust, DiskMatrix[5]] 
    
    (* Connected component selection based on some supposed sizes. *) 
    ccs = SelectComponents[wsthick, "Count", 1000 < # < 3000 || 6000 < # < 10000 &] 
    
    (* Final image (thick border on binarized filled dilated ccs) *) 
    res = ImageAdd[f, Dilation[MorphologicalPerimeter[FillingTransform[ 
        MorphologicalPerimeter[Dilation[ccs, DiskMatrix[9]]]]], 2]] 
    
  • +0

    Cevabınız için teşekkür ederiz. Özellikle neden sınırları işaretlemem ve ilgisiz bölgeyi atmam gerektiğini söyleyeyim.Pug alanını analiz etmem ve Pad alanı, ayak bölgesi, ayak 2 ve 3 arasındaki açı, pugmark uzunluğu, genişlik, ve sonra analiz edilen görüntüyü eğitim seti ile karşılaştırdıktan sonra hangi kaplanın pugmark olduğunu ayırt edebilmem gerekir. – Suvidha

    +0

    @ user2067773 Tamam, bana neden böyle olduğunu söylediğinizi bilmiyorum. Ama tarif ettiğin bu yöntemde bir adım atıyormuş gibi görünüyorsun: önce sahip olduğun bir pugmark olup olmadığını belirlemek için bir yönteme sahip olmalısın, yoksa onu analiz etmek anlamsız. – mmgp

    +0

    evet haklısın. Bunu düşünmedim. Ama ilk kaygım arka planı maskelemek ve daha fazla analiz için pugmarkın net bir görüntüsünü elde etmektir. – Suvidha

    3

    @ mmpg yanıtında yaklaşımı, kararsız olabilir: Matlab kodu) yorumunu yaptı. Bu sorun, şekil hakkında önceden bilgi sahibi olan parametrik modellerle daha iyi bir yaklaşım sergiliyor gibi görünüyor. Çerçeve, şeklin sınırını yinelemeli olarak yaklaştırır. yalnızca

    Initialization of the shape

    kontur çapa noktaları tanımlanır (mavi keneler tarafından gösterilen: Öncelikle, (görüntü sadece resimlerde değil, algoritmanın gerçek çıkıştır) bazı ortalama şekli ile başlatılamıyor dağınıklığı önlemek için hurma).Her iterasyonda, algoritma her bir ankraj noktasında ortogonal yönleri dikkate alır ve her mesafedeki (genellikle görüntü gradyanını kullanarak, fakat sizin durumunuzda daha karmaşık olması gerekir) sınırın olasılığını tahmin eder, örneğin dokudaki fark, örn. histograms of textons arasındaki mesafe). Bu dağılımların Burada kırmızı noktalar vurgulamak arg-maksimum değerleri: Veri şeklin dağıtımdan önce çarpılır bu dağılımlar maksimize etmek için

    Modes of the edge-ness distribution

    Ardından yeni kontur seçimdir. önceki üniforma varsayarsak, yeni kontur şu şekilde görünecektir: Uygulamada

    The new contour

    olmayan bir önemsiz şekil dağılımına sahip istiyoruz. Bunu tahmin etmek için, pugmark maskelerinin elle etiketlendiği bir görüntü kümesi setine ihtiyacınız olacaktır.

    this MATLAB implementation'u denemek isteyebilirsiniz.