OpenCV 2.0 + Windows
Ze względu na kolejny projekt, w który się zaangażowałem, potrzebowałem działającej, sprawnej biblioteki do przetwarzania obrazu. Wybór padł na OpenCV, zaś strona projektu zaskoczyła nas wydaniem we wrześniu tego roku wersji 2.0. Niestety, próba kompilacji okazała się być podwójnie nieudana
Zamieszczam więc krótki opis jak zmusić OpenCV do współpracy.
Linkowanie bibliotek - ustawienia linkera
Pierwszym problemem z jakim się zetknęliśmy było linkowanie bibliotek - rzut oka do katalogu z bibliotekami utwierdził nas w przekonaniu, że tutorial, którego używamy jest przeznaczony dla OpenCV1.0 lub 1.1. Tak czy inaczej w ustawieniach linkera należy dodać uzupełnione w stosunku do poprzedniej wersji wywołania:
-lopencv200 -lcxcore200 -lcvaux200 -lml200 -lcxts200 -lhighgui200
Zaś jako ścieżkę bibliotek (-L) domyślnie: C:\OpenCV2.0\lib
Taka modyfikacja wywołania pozwoli linkować nasze programy. Ważniejsze jest jednak rozwiązanie problemów związanych z samą kompilacją.
Używanie headerów
Kolejna rzecz, która przebiega sama w sobie bez niespodzianek, to dodanie katalogu z plikami *.h i *.hpp do wywołań kompilatora:
-IC:\OpenCV2.0\include\opencv
Rozwiązanie problemu z kompilacją
Niestety, pomimo iż biblioteka o tym jawnie nie wspomina, nie została ona dobrze przygotowana do pracy z obecną, stabilną wersją GCC. Aby uniknąć kłopotów przy kompilacji (kłopot==nie działa:)) Najlepiej wybrać nowszą wersję GCC. Pod systemem Windows jednym z lepszych wyborów jeśli chodzi o instalację kompilatora c++, narzędzi do budowania etc. jest pakiet MinGW. Do tej pory korzystałem z oficjalnego wydania MinGW, które "niestety" zawiera oficjalną wersję kompilatora GCC. Świetnie radził sobie on np. z kompilacją programów z biblioteką Qt. Będąc zmuszonym do rezygnacji z tego rozwiązania, a jednocześnie nie chcąc instalować ręcznie całej otoczki (make, binutils, etc.) skorzystałem z strony http://www.tdragon.net/recentgcc/. Najlepiej wybrać najnowszą wersję w wersji Bundled - nie ma wtedy ryzyka, że któraś z paczek zniknęła z serwera. Po instalacji nowego "pseudo" MinGW (która jest bardzo bezproblemowa) kompilacje z użyciem OpenCV rusza bez problemu.
Warto również zwrócić uwagę, iż Qt 4.5.3 również świetnie działa z GCC 4.4.1, zaś nowsze, "niestabilne" wersje GCC są coraz częściej używane (np pakiet GNU ARM używa GCC serii 4).