piątek, 3 lipca 2009

Learning OpenCV. Computer Vision with the OpenCV Library

Witam po dłuższej nieobecności spowodowanej sesją, nawałem pracy itp., itd. Dzisiaj minirecenzja książki "Learning OpenCV". Autorami książki są Gary Bradski oraz Adrian Kaehler. Pierwszy z nich jest bardzo mocno związany z OpenCV i uczestniczy w jej powstawaniu od samego początku.

Ksiązka ta prowadzi wprowadza nas krok po kroku w świat wizji komputerowej i OpenCV. Na początku poznajemy bibliotekę, sposób jej instalacji. Dalej kolejno mamy:
  • podstawy OpenCV - zapoznajemy się z podstawowymi strukturami,
  • HighGUI - zapis/odczyt obrazu, wyświetlanie okien,
  • przetważanie obrazów - filtry, morfologia obrazu, sploty, detektory, DFT itp.,
  • histogramy - budowanie, analiza, porównywanie,
  • kontury,
  • segmentacja,
  • ruch i jego śledzenie,
  • kalibracja kamery,
  • wizja 3D,
  • uczenie maszynowe - opis biblioteki Machine Learning, która jest obecnie częścią OpenCV
Książka opisuje wszystko przejrzyście i przystępnie. Zawiera sporo przykładów użycia. Najważniejsze funkcje opisane są osobno, a każdy parametr wytłumaczony. Pozwala to szybko zrozumieć jak dany parametr wpływa na wynik. Książka bogata jest w schematy i obrazy wynikowe.

Na początku książkę czyta się lekko i szybko, później trzeba się już niestety bardziej skupić, ponieważ poziom skomplikowania wzrasta (dla mnie było to mniej więcej od rozdziału o śledzeniu ruchu...). Mimo wszystko trzeba przyznać, że autorom udaje się podtrzymać poziom i od książki oderwać się nie mogłem ;-) Przekrój materiału jest odpowiedni dla początkującego, właściwie można ją czytać nie mając wcześniej styczności z wizją komputerową, gdyż każdy proces jest tłumaczony, także jego możliwe zastosowanie. Zaraz po tym autorzy przedstawiają nam jak taki efekt uzyskać w OpenCV, mamy więc dwie pieczenie na jednym ogniu.

Jako wadę można uznać ponownie... zakres materiału. Trzeba przyznać, że książka skupia się na podstawach. Bardzo wiele rzeczy, już bardziej zaawansowanych, nie jest nawet wspomniana pomimo tego, że w OpenCV są zaimplementowane. Oczywiście nie można mieć do autorów o to pretensji. Książka jest swoistym wstępem i tylko w takich kategoriach należy ją brać pod uwagę, chociaż niedosyt zostaje. Jest to jedyna pozycja na rynku o OpenCV, na kolejne się nie zanosi. Poza tym, nowa wersja biblioteki przechodzi w obiektowość (z C w C++). Algorytmy są przystosowywane. Wsteczna kompatybilność ma być zachowana, ale w niedługim czasie książkę będzie można uznać za lekko nieaktualną.

Podsumowując polecam ją jak najbardziej osobom, które chcą poznać podstawy OpenCV wraz z podstawami wizji komputerowej :)

Pozdrwaiam,
Ratix :)

P.S. Mam zamiar jeszcze napisać tego typu minirecenzje innych książek które wpadną mi w ręce. Ponadto, jak już kiedyś wspomniałem, staram się tworzyć bardziej "praktyczne" programy, idzie niestety trochę opornie...

Brak komentarzy: