ÍNDICE DE CONTEÚDO
A área de visão computacional tem chamado a atenção nos últimos anos e tem se tornado cada vez mais acessível a todos, não apenas à indústria mas também aos usuários comuns. Processadores potentes aliados com câmeras de boa resolução possibilitou-se criar programas capazes de processar video em tempo real.
No intuito de facilitar o desenvolvimento, foi criado o OpenCV, que é uma biblioteca para desenvolvimento de aplicativos na área de visão computacional. Ela foi originalmente desenvolvida pela Intel em meados de 2000 e é livre para uso acadêmico e comercial seguindo o modelo BSD Intel.
A biblioteca OpenCV pode ser usada em C++ na versão atual, chamada OpenCV2 e em C na versão anterior, chamada OpenCV. Também pode ser desenvolvida uma aplicação em outras linguagens, como Python. Possui uma extensa e completa documentação que pode ser encontrada na página de documentação do projeto.
Instalando o QT
Para o desenvolvimento de programas usando essa biblioteca, usaremos o QT que é um framework multiplataforma bem conhecido da comunidade. A instalação é simples. Visite a site do projeto para fazer o download ou via linha de comando e siga as instruções do instalador:
1 2 3 4 5 |
mkdir qt5 cd qt5 wget https://download.qt-project.org/official_releases/online_installers/qt-opensource-linux-x64-1.6.0-4-online.run chmod +x ./qt-opensource-linux-x64-1.6.0-4-online.run sudo ./qt-opensource-linux-x64-1.6.0-4-online.run |
Compilando OpenCV
Primeiro, vamos instalar alguns pacotes necessários para compilar o OpenCV:
1 2 3 |
sudo apt-get install build-essential sudo apt-get install libgtk2.0-dev sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev |
Faça o download da última versão da biblioteca aqui e salve num diretório chamado opencv5.
1 2 3 4 5 6 7 8 |
cd opencv5 unzip ./opencv-2.4.9.zip cd opencv-2.4.9 mkdir build cd build cmake -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_GTK_2_X=ON .. make sudo make install |
A biblioteca, por padrão, será instalada em /usr/local/lib. Para as opções do cmake veja o arquivo CMakeLists.txt.
Agora, para poder linkar as novas bibliotecas, vamos criar um novo arquivo chamado opencv.conf em /etc/ld.so.conf.d/. Edite-o com o seguinte conteúdo:
1 |
/usr/local/lib |
e depois execute o seguite comando:
1 |
sudo ldconfig |
Testando OpenCV
Para testar, vá para o diretório bin criado dentro do diretório build e execute por exemplo:
1 2 |
cd ./bin cd ./opencv_test_core |
Integrando QT5 + OpenCV
Inicie o QTCreator. Via linha de comando seria:
1 |
/opt/Qt/Tools/QtCreeator/bin/qtcreator |
Nesta máquina ela foi instalada em /opt/Qt. Se desejar você também pode iniciar via modo gráfico, no KDE por exemplo:
Crie um projeto console no QT Creator.
Selecione Desktop como plataforma e siga as instruções do wizard até o fim.
No arquivo .pro adicione o path onde foi instalada a biblioteca opencv e inclua o caminho para os headers instalados no início do post.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
INCLUDEPATH += . INCLUDEPATH += /usr/local/include INCLUDEPATH += /usr/local/include/opencv INCLUDEPATH += /usr/local/include/opencv2 INCLUDEPATH += /usr/local/include/opencv2/core INCLUDEPATH += /usr/local/include/opencv2/highgui INCLUDEPATH += /usr/local/include/opencv2/imgproc INCLUDEPATH += /usr/local/include/opencv2/flann INCLUDEPATH += /usr/local/include/opencv2/photo INCLUDEPATH += /usr/local/include/opencv2/video INCLUDEPATH += /usr/local/include/opencv2/features2d INCLUDEPATH += /usr/local/include/opencv2/objdetect INCLUDEPATH += /usr/local/include/opencv2/calib3d INCLUDEPATH += /usr/local/include/opencv2/ml INCLUDEPATH += /usr/local/include/opencv2/contrib LIBS += `pkg-config opencv --cflags --libs` |
Para o primeiro exemplo, vamos carregar a famosa foto da lena. Para isso a copie no diretório do teu projeto dentro da pasta Debug se estiver em modo debug ou Release se estiver em modo release.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#include <QCoreApplication> #include <opencv2/highgui.hpp> #include <opencv2/core.hpp> #include <opencv2/imgproc.hpp> #include <iostream> using namespace cv; using namespace std; int main(int argc, char *argv[]) { Mat image; image = imread("lena.jpg"); // Read the file if(!image.data) { cout << "nenhuma imagem!"; } else { cout << "imagem carregada!"; } cv::namedWindow("Teste imagem"); cv::imshow("Teste imagem", image); cv::waitKey(0); return 0; } |
Clique em Run para compilar e executar o código, se tudo estiver correto, a seguinte imagem será exibida.
Nos próximos posts iremos abordar alguns temas interessantes nessa vasta área de visão por computador. E você leitor, qual o seu interesse nessa área? Com o que tem trabalhado e como tem usado o OpenCV em seus projetos?
No site freelancer.com surgiu um projeto muito interessante envolvendo OpenCV:
Vehicle Counting and Classification using OpenCV, C++ (Image Processing) –
https://www.freelancer.com/projects/CPlusPlus-Programming-Algorithm/Vehicle-Counting-Classification-using.html?utm_campaign=latest_project_contest&utm_medium=email_notification&utm_source=project_title&utm_content=html&ttref=Project_LPCNhtml
Excelente artigo. Me ajudou muito!!