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

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

video.mp4