SORU
12 Aralık 2011, PAZARTESİ


Nasıl Sturm ile Waldo bulabilirim?

Bu hafta sonu kafamı kurcalıyordu: Where's Waldo? bunları çözmek için iyi bir yoldur [Ne'' . Wally Kuzey Amerika dışında] bulmaca, Sturm (görüntü işleme ve diğer işlevler) kullanarak?

Şu ana kadar öğrendiklerimi burada, karartma görsel karmaşıklık biraz azaltan bir işlev non-kırmızı renkleri: biraz

whereIsWaldo[url_] := Module[{waldo, waldo2, waldoMask},
    waldo = Import[url];
    waldo2 = Image[ImageData[
        waldo] /. {{r_, g_, b_} /;
          Not[r > .7 && g < .3 && b < .3] :> {0, 0,
          0}, {r_, g_, b_} /; (r > .7 && g < .3 && b < .3) :> {1, 1,
          1}}];
    waldoMask = Closing[waldo2, 4];
    ImageCompose[waldo, {waldoMask, .5}]
]

Ve bir URL bir örnek bu 'işleri':

whereIsWaldo["http://www.findwaldo.com/fankit/graphics/IntlManOfLiterature/Scenes/DepartmentStore.jpg"]

(Waldo yazarkasa) tarafından

Mathematica graphic

CEVAP
12 Aralık 2011, PAZARTESİ


Waldo buldum!

waldo had been found

Bunu yaptım nasıl

İlk olarak, kırmızı olmayan tüm renkler filtreleyerek ediyorum

waldo = Import["http://www.findwaldo.com/fankit/graphics/IntlManOfLiterature/Scenes/DepartmentStore.jpg"];
red = Fold[ImageSubtract, #[[1]], Rest[#]] &@ColorSeparate[waldo];

Gelecek, siyah ve beyaz basit bir desen ile bu görüntü korelasyon gömlek kırmızı ve beyaz geçişleri bulmak için hesaplıyorum.

corr = ImageCorrelate[red, 
   Image@Join[ConstantArray[1, {2, 4}], ConstantArray[0, {2, 4}]], 
   NormalizedSquaredEuclideanDistance];

Binarize yeterince yüksek bir korelasyon ile görüntü pikselleri seçmek ve etrafında beyaz bir daire onları Dilation kullanarak vurgulamak çizmek için kullanacağım

pos = Dilation[ColorNegate[Binarize[corr, .12]], DiskMatrix[30]];

Biraz seviye ile oynamak zorunda kaldım. Eğer seviyesi çok yüksek ise, çok fazla yanlış pozitif seçti.

Son olarak, orijinal görüntü ile bu sonuç yukarıda almak için bir araya geldim

found = ImageMultiply[waldo, ImageAdd[ColorConvert[pos, "GrayLevel"], .5]]

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • B4ROK

    B4ROK

    1 EKİM 2008
  • Bart Baker

    Bart Baker

    1 Aralık 2006
  • ethr95awd

    ethr95awd

    8 Kasım 2006