Saturday, October 17, 2009

OpenCv -> Numpy

OpenCv uzerinden okunan bir imaji Numpy ile isleyebilmek icin veriyi Numpy'in isleyebilecegi bir array tipine cevirmek gerekiyor. Bu ceviriyi yapmak icin gereken kod OPENCV/interfaces/swig/python dizini altindaki adaptors.py kodu icinde. Once, eger yapmadiysaniz, tum bu dizini "make; sudo make install" ile derleyip kurmak lazim. Adaptor kodunu soyle kullaniyoruz
from opencv import adaptors

def dotrack(img):
..
numpy_arr = adaptors.Ipl2NumPy(img)
Geri gelen numpy_arr uc boyutlu bir vektor. X ve Y kordinatlar ve bu indislerin kullanimiyla gelen 3 elemanli "ufak array" icinde ise sirasiyla R, G, B degerleri olacak, yani kirmizi (red), yesil (green) ve mavi (blue) renklerinin degerleri olacak. Bu array uzerinde degisim yapilirsa geri OpenCv imajina cevirmek icin NumPy2Ipl cagrisi kullanilabilir. Array boyutlarina print len(numpy_arr..) ile bakabilirsiniz, erisim normal array erisimi, numpy_arr[100][100][0] kullanimi 100x100 kordinatindaki kirmizi degeri verecek mesela. Kamera goruntusu indislere [y][x][renk] olarak yansiyor.

Tuesday, October 6, 2009

Stephen Marsland - Yapay Ogrenim Kitabi

Stephen Marsland'in yapay ogrenim kitabini tavsiye ediyoruz. Kitabin iyi taraflari yapay ogrenimde son zamanlarda sikca gorulen simulasyon, ornekleme vurgusunu kitapta yansitmasi, ayrica tum orneklerin Python uzerinden verilmesi. Hem ogrenim hem gercek uygulamalarda bilimsel hesaplama icin Matlab'den Python'a bir gecis var - Matlab'in ticari bir urun olmasi ve dilinin Python kadar genel kullanimda olan bir dil olmamasi bu gecisi tetikleyen ana sebeplerden. Kitabin sitesi surada, tum Python ornek kodlari oradan indirilebilir.