wtorek, 6 października 2009

Jak skompilować InsightToolkit ze źródeł i podłączyć do TCLa i Pythona?

Podobnie jak w przypadku VTK instalacja InsightToolkit w Ubuntu 9.04 sprowadza się do wpisania w terminalu następującego polecenia:
sudo apt-get install insighttoolkit3-examples libinsighttoolkit3-dev libinsighttoolkit3.10 tcl8.4-insighttoolkit3 python-insighttoolkit3

Podobnie również tutaj, występuje problem z dostępem do najnowszej wersji biblioteki (wersja w repozytorium na dzień dzisiejszy - 6 paź '09 - to 3.10, a na stronie projektu jest już dostępna wersja 3.16). Dlatego jeśli zależy nam na najświeższej wersji, możemy ją sami przygotować kompilując bibliotekę ze źródeł.

Ze strony ITK, z działu Download pobieramy następujące pliki: InsightToolkit-3.16.0.tar.gz, InsightApplications-3.16.0.tar.gz, CableSwig-ITK-3.16.0.tar.gz, lub ich nowsze wersje. Po ich rozpakowaniu do wcześniej przygotowanego katalogu, najpierw skompilujemy CableSwig - pakiet używany do opakowania (ang. wrapping) kodu C++ do innych języków programowania. Nie wymaga on ustawiania żadnych niestandardowych opcji kompilacji, dlatego po przejściu do katalogu CableSwig-ITK-3.16.0 wystarczy wpisać następującą sekwencję poleceń:
mkdir build && cd build && cmake ../ && make

Następnie przechodzimy do katalogu InsightToolkit-3.16.0, zakładamy katalog build i po przejściu do niego uruchamiamy graficzną nakładkę na CMake:
mkdir build && cd build && cmake-gui ../

W kolejnym kroku ustawiamy odpowiednie opcje kompilacji. Poniższa propozycja umożliwi połączenie ITK z językami skryptowymi TCL i Python.
BUILD_EXAMPLES                 OFF
BUILD_SHARED_LIBS ON
BUILD_TESTING OFF
CMAKE_BUILD_TYPE Release
CMAKE_INSTALL_PREFIX /opt
CableSwig_DIR /home/rafal/install/itk/CableSwig-ITK-3.16.0/build
ITK_USE_REVIEW ON
ITK_USE_PATENTED ON
ITK_USE_REVIEW_STATISTICS OFF
USE_WRAP_ITK ON
INSTALL_WRAP_ITK_COMPATIBILITY ON
WRAP_ITK_JAVA OFF
WRAP_ITK_PYTHON ON
WRAP_ITK_TCL ON

Uruchamiamy kompilację i instalujemy bibliotekę:
make
sudo make install

Uwagi odnośnie kompilacji:
  • Liczba przykładów i testów w ITK jest ogromna. Warto zatem je wyłączyć (opcje: BUILD_EXAMPLES i BUILD_TESTING) przy pierwszej kompilacji, bo w przeciwnym wypadku kompilacja może potrwać nawet kilka godzin. Jeśli proces kompilacji zakończy się poprawnie, kompilację przykładów polecam włączyć w wolnym czasie, np. w nocy.
  • Opcje BUILD_SHARED_LIBS i ITK_USE_REVIEW są wymagane po włączeniu opcji USE_WRAP_ITK.
  • W wersji ITK 3.16, którą testowałem, włączenie opcji ITK_USE_REVIEW_STATISTICS i USE_WRAP_ITK spowodowało błędy w kompilacji. Dlatego jeśli nam bardziej zależy na połączeniu z językami skryptowymi, polecam wyłączenie testowego modułu statystyk.

Jak połączyć ITK i Python?

Ustawiamy zmienną środowiskową PYTHONPATH na odpowiedni katalog:
export PYTHONPATH=/opt/lib/python2.6/site-packages

Jak podłączyć ITK i TCL?

Ustawiamy następujące zmienne systemowe:
export TCLLIBPATH=/opt/lib/InsightToolkit/WrapITK/Tcl
export LD_LIBRARY_PATH=/opt/lib/InsightToolkit

Testujemy połączenie z TCL:
tclsh
%puts $auto_path
%package require InsightToolkit
3.16.0

Automatyczne podłączenie TCL i Python przy starcie systemu
Aby nie ustawiać ręcznie zmiennych systemowych po każdym włączeniu komputera, możemy je dopisać do pliku ~/.bashrc, a system sam zrobi to za nas.
Poniżej przykład wpisu uwzględniający również VTK:
nano ~/.bashrc

export TCLLIBPATH="/opt/lib/vtk-5.4 /opt/lib/InsightToolkit/WrapITK/Tcl"
export LD_LIBRARY_PATH=/opt/lib/vtk-5.4:/opt/lib/InsightToolkit
export PYTHONPATH=/opt/lib/python2.6/site-packages

Instalacja ITK Application

Pakiet InsightToolkit sam w sobie zawiera tylko proste przykłady pokazujące jak pracować z biblioteką. Zbiór bardziej zaawansowanych przykładów jest dostępny w pakiecie InsightApplication (opis tych programów jest dostępny na stronie projektu, w dziale Applications).

Zdecydowana większość aplikacji korzysta z biblioteki FLTK do obsługi GUI. Możemy ją zainstalować następującym poleceniem:
sudo apt-get install libfltk1.1 libfltk1.1-dev fluid fltk1.1-doc

Następnie uruchamiamy CMake i ustawiamy, które aplikacje powinny zostać przygotowane. Ja wybrałem zdecydowaną większość z nich, z wyłączeniem wtyczek do Volview (pobierając Volview wtyczki są już skompilowane).
BUILD_SHARED_LIBS        OFF
BUILD_TESTING OFF
CMAKE_BUILD_TYPE Release
CMAKE_INSTALL_PREFIX /opt
ITK_DIR /opt/lib/InsightToolkit
USE_FLTK ON
USE_VTK ON
VTK_DIR /opt/lib/vtk-5.4
USE_VolviewPlugins OFF
USE_AUXILIARY ON


Instalacja biblioteki InsightToolkit ze źródeł daje nam pewność, że korzystamy z jej najnowszej wersji, a możliwość wyboru parametrów kompilacji pozwala na dopasowanie jej do aktualnych potrzeb.

0 komentarze:

Prześlij komentarz