SORU
13 Ocak 2012, Cuma


Nasıl Python ile Wally bulabilirim?

Utanmadan çoğunluğa atlama :-)

How do I find Waldo with Mathematica ve takip esinlenerek How to find Waldo with R, yeni bir python kullanıcı olarak bunun nasıl yapıldığını görmek isterim. Python R daha bu daha uygun olur gibi görünüyor, ve Sturm veya deposunda bulunan gerekse lisanslar hakkında endişelenmenize gerek yok.

Aşağıdaki gibi bir örnekte belli ki sadece kullanarak çizgili işe yaramaz. Eğer Kural tabanlı basit bir yaklaşım bu gibi zor örnekler için çalışmak için yapılmış olabilir eğer ilginç olurdu.

At the beach

Aldım ekledi [makine-öğrenme] tag olarak inanıyorum ki doğru cevap için kullanın ML teknikleri gibi Kısıtlı Boltzmann Makinesi (RBM) yaklaşımını savundu tarafından Gregory Klopper özgün iş parçacığı. Başlamak için iyi bir yer olabilir bazı RBM code available in python var, ama belli ki eğitim veri yaklaşımı için gereklidir.

2009 IEEE International Workshop on MACHINE LEARNING FOR SIGNAL PROCESSING (MLSP 2009) Data Analysis Competition: Where's Wally? koştular. Eğitim verileri matlab biçiminde sağlanır. Bu web sitesindeki linkler ölü olan, ancak veri (bir yaklaşım Sean McLoone tarafından çekilen kaynağı ile birlikte ve meslektaşları bulunabilir here (SCM bağlantıya bakınız). Başlamak için bir yer gibi görünüyor.

CEVAP
7 Kasım 2012, ÇARŞAMBA


İşte mahotas ile ilgili bir uygulama

from pylab import imshow
import numpy as np
import mahotas
wally = mahotas.imread('DepartmentStore.jpg')

wfloat = wally.astype(float)
r,g,b = wfloat.transpose((2,0,1))

Kırmızı, yeşil ve mavi kanallara ayrılır. Daha iyi kayan nokta aritmetik aşağıda kullanmak, üstüne de bu yüzden dönüştürmek.

w = wfloat.mean(2)

w beyaz kanal.

pattern = np.ones((24,16), float)
for i in xrange(2):
    pattern[i::4] = -1

Dikey eksende 1,, -1 1,-1 bir model oluşturmak. Bu wally gömlek.

v = mahotas.convolve(r-w, pattern)

Kırmızı eksi beyaz ile Convolve. Bu gömleği nerede güçlü bir tepki verecektir.

mask = (v == v.max())
mask = mahotas.dilate(mask, np.ones((48,24)))

Maksimum değere bakın ve onu görünür yapmak için genişler. Şimdi, biz bütün görüntü kısık sesle, bölge ve / veya faiz hariç:

wally -= .8*wally * ~mask[:,:,None]
imshow(wally)

waldo!

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Digital Bounds

    Digital Boun

    19 Temmuz 2013
  • Glyn Dewis

    Glyn Dewis

    25 AĞUSTOS 2007
  • TomKNJ

    TomKNJ

    26 ŞUBAT 2007