Krzysztof Wesołowski Programowanie, elektronika, automatyka – doświadczenia i projekty

13lis/09

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).

Komentarze (0) Trackbacks (0)

Przepraszam, dodawanie komentarzy zablokowane.

Trackbacks are disabled.