TP-traitement-image/DEP_LINUX.md
2022-09-18 16:51:07 +02:00

79 lines
3 KiB
Markdown

# Linux
These are the steps to build all you need for the TP.
## Prerequisites
In order to develop in C++ some system packages are required (you may already have it installed on your machine since the opengl tp of last semester):
```
sudo apt-get install libglu1-mesa-dev freeglut3-dev build-essential mesa-common-dev libxi-dev libxmu-dev automake libgtk+2.0-dev pkg-config libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libv4l-dev gstreamer1.0-plugins-bad ubuntu-restricted-extras
```
To build this code we use the CMake build system.
You can install CMake from the system package manager but you need a recent version >= 3.10.
Check the version that is provided by your linux distribution and if it is suitable usually you just need to
```
sudo apt-get install cmake
```
otherwise you can install the binaries from here: https://github.com/Kitware/CMake/releases/download/v3.17.1/cmake-3.17.1-Linux-x86_64.sh
To install:
```
wget https://github.com/Kitware/CMake/releases/download/v3.17.1/cmake-3.17.1-Linux-x86_64.sh
chmod +x cmake-3.17.1-Linux-x86_64.sh
sudo cmake-3.17.1-Linux-x86_64.sh --prefix=/usr/local/ --skip-license
```
## Setting up your working environment
* create a folder `tpTI` where you will have all the dependencies and the sources of the tp.
Please avoid paths containing spaces, weird characters or accents.
* to make your life easier, set up an environment variable that refer to this location
* You can define it for a single session with (e.g.) `export tpTIBasePath=/home/sgaspari/dev/tpTI`
* or you can define it once for all by adding the previous instruction to your `~/.bashrc` (or `~/.profile`) files, so that you don't need to run the instruction for each terminal session.
* you can verify that the variable is set with `echo ${tpTIBasePath}`
## opencv
OpenCV is a computer vision library that contains some of the algorithms we are using for image processing and pose estimation.
To install it:
* download the library from the repository https://github.com/opencv/opencv/archive/3.4.13.zip
* unzip the file into `${tpTIBasePath}` (a folder named `opencv-3.4.13` should appear).
* from `${tpTIBasePath}\opencv-3.4.13` create a `build` directory (`mkdir build`)
* from the shell, go to `${tpTIBasePath}/opencv-3.4.13/build` and execute the following:
```
cmake .. -DCMAKE_INSTALL_PREFIX:PATH=`pwd`/install -DCMAKE_BUILD_TYPE=Release -DWITH_CUDA:BOOL=OFF -DBUILD_PERF_TESTS:BOOL=OFF -DBUILD_TESTS:BOOL=OFF
```
* then build and install the library by running
```
make install -j$(nproc)
```
and go grab a cup of coffee or a beverage of your choice ;-)
* in order to run the tp code later on you have to add the built libraries to the `LD_LIBRARY_PATH` environment variable.
```
export LD_LIBRARY_PATH=${tpTIBasePath}/opencv-3.4.13/build/install/lib:$LD_LIBRARY_PATH
```
Again, you can add this to your `~/.bashrc` (or `~/.profile`) file so that you have it available for all shell sessions.