Instruções para instalação da lib Opencv no Linux. Os seguintes passos funcionarão em qualquer linux derivado do Debian, como o Ubuntu.
Testado no Ubuntu 20.04, mas deve funcionar em qualquer versão.
Os comandos do terminal estão precedidos pelo símbolo sifrão ($), contudo, o cifrão não deve ser usado ao escrever comando. Ele é só uma indicação do terminal.
Atualizado dia 12/12/2022.
1 - A opencv depende de algumas bibliotecas, instale GTK, V4L, avcodec e cmake.
$ sudo apt-get update
$ sudo apt-get install g++
$ sudo apt-get install libgtk-3-dev
$ sudo apt-get install libgtk2.0-dev
$ sudo apt-get install libv4l-dev
$ sudo apt-get install libavcodec-dev
$ sudo apt-get install cmake
Vai pedir para digitar a senha do seu usuário, e sem seguida responda sim 'S', ou yes, 'Y'
2 - É recomendado instalar a ffmpeg e alguns decoders para decodificação de vídeos h264.
$ sudo apt-get install ffmpeg
$ sudo apt-get install libavformat-dev
$ sudo apt-get install libavutil-dev
$ sudo apt-get install libswscale-dev
$ sudo apt-get install libavresample-dev
$ sudo apt-get install libavdevice-dev
$ sudo apt-get install libavfilter-dev
$ sudo apt-get install libgstreamer1.0-dev
Vai pedir para digitar a senha do seu usuário, e sem seguida responda sim 'S', ou yes, 'Y'
3 - Baixe a opencv com o código fonte ("Sources"), o arquivo .zip, aqui:
https://opencv.org/releases.html
Baixe a versão mais nova, sem *. As versões com * não são estáveis ainda. Neste exemplo foi baixada a versão 4.6.0.
4 - Descomprima o arquivo baixado, em qualquer pasta. Sugiro descomprimir na pasta Downloads:
$ cd Downloads
$ unzip opencv-4.6.0.zip
Substituta opencv-4.6.0.zip pelo nome do arquivo que você baixou.
5 - Entre na pasta da opencv (supondo que você já está na pasta Downloads):
$ cd opencv-4.6.0
Substitua "opencv-4.6.0" pela nome/versão da pasta da opencv no seu computador.
6 - Crie uma pasta, dentro da pasta da opencv, onde ficará a compilação da opencv, segestão de nome: build
$ mkdir build
7 - Para configurar a compilação entre na pasta build e use o cmake:
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-DWITH_V4L=ON \
-DWITH_LIBV4L=ON \
-DWITH_FFMPEG=ON \
-DOPENCV_GENERATE_PKGCONFIG=YES \
-D BUILD_EXAMPLES=ON ..
Durante esse processo vai ser feito o download de um arquivo ippicv_linux, esteja conectado a Internet. Não será mostrado o andamento do download, espere.
8 - Para compilar a opencv execute o make:
$ make -j4
A compilação demora, espere 10 a 30 minutos.
O -j4 executa o make utilizando 4 cores do processador. Se seu computador tiver 8 núcleos use -j8, se tiver 2 use -j2. Se você não souber, não tem problema, pode usar -j4 mesmo.
9 - Instalar a opencv no sistema:
$ sudo make install
$ sudo ldconfig
Nesse momento a opencv já está instalada.
10 - Sugiro tentar rodar algum exemplo. Volte para a pasta opencv (supondo que você está na pasta build)
$ cd ..
Entre na pasta dos exemplos:
$ cd samples/cpp/example_cmake
Edite o arquivo Makefile em algum editor de texto, nesse exemplo usaremos o editor gedit:
$ gedit Makefile
Altere as linhas, adicionando o 4 após opencv:
CXXFLAGS += -c -Wall $(shell pkg-config --cflags opencv)
LDFLAGS += $(shell pkg-config --libs --static opencv)
por:
CXXFLAGS += -c -Wall $(shell pkg-config --cflags opencv4)
LDFLAGS += $(shell pkg-config --libs --static opencv4)
Compile o exemplo:
$ make
Execute:
$ ./opencv_example
Agora está na hora de programar, divirtam-se.
Para compilar seu código fonte:
$ g++ *.cpp `pkg-config --cflags opencv4` `pkg-config --libs --static opencv4`
Talvez precise antes de rodar:
$ export LD_LIBRARY_PATH=/usr/local/lib/x86_64-linux-gnu/
Exemplo FaceDetectorSimple
Flags compilação manual (versão) 3.4.4:
-L/usr/local/lib -lopencv_dnn -lopencv_ml -lopencv_objdetect -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core -ldl -lm -lpthread -lrt
-I/usr/local/include/opencv -I/usr/local/include
Local (sem root)
g++ facedetectSimple.cpp -L ~/Downloads/opencv-3.4.4/build/lib -lopencv_dnn -lopencv_ml -lopencv_objdetect -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core -ldl -lm -lpthread -lrt -I ~/Downloads/opencv-3.4.4/include -I/usr/local/include