Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução ao OpenCV
Cristiano Rafael Steffens
cristianosteffens@furg.br
Universidade Federal do Rio Grande – FURG
Centro de Ciências Computacionais
Agenda
O que é a OpenCV?
Como instalar?
Hello World?
O que podemos fazer com OpenCV?
O que é OpenCV?
No Windows:
Download do arquivo em http://opencv.org/downloads.html
Configuração do caminho dos binários no path
Procedimento detalhado:
http://docs.opencv.org/doc/tutorials/introduction/windows_insta
ll/windows_install.html
http://docs.opencv.org/doc/tutorials/introduction/windows_visua
l_studio_Opencv/windows_visual_studio_Opencv.html
Aplicações da OpenCV
A biblioteca OpenCV é dividida em módulos
core - define as principais estruturas de dados utlizadas pela
biblioteca. Ex.: Mat e Point.
improc - Módulo de processamento de imagem que inclui filtros
lineares e não lineares além de transformações geométricas.
highgui - Módulo com funções de interface como criação de janelas.
objdetect - Módulo com funções de detecção de objetos. Ex: haar,
cascade classifiers.
ml – Módulo com funções de Machine Learning. Ex: classificadores
de árvore, knn, redes neurais, svm e classificadores bayesianos.
int main() {
return 1;
}
Olá mundo!!
// includes da opencv
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
int main() {
// lê a imagem para uma matriz
cv::Mat image = cv::imread("img.jpg");
//cria uma matriz para guarder a imagem em escala de cinza
cv::Mat gray_image;
// converte a cor
cv::cvtColor( image, gray_image, CV_BGR2GRAY);
// cria uma janela para mostrar a imagem
cv::namedWindow(“Tutorial OpenCV - FURG");
// mostra a imagem
cv::imshow( " Tutorial OpenCV - FURG ", gray_image);
// aguarda 5000 ms
cv::waitKey(5000);
return 1;
}
Realçando uma imagem
// lê a imagem para uma matriz
if( ! image.empty() ){
// cria as matrizes
// mostra a imagem
cv::imwrite("sharp.png", sharp);
}
Encontrando bordas
/// Converte a imagem para escala de cinza
cv::cvtColor( src, src_gray, CV_BGR2GRAY );
/// Remove o ruído da imagem utilizando um filtro de kernel 3x3
cv::blur( src_gray, detected_edges, Size(3,3) );
/// Detector de bordas de Canny
/// origem, saída, threshold baixo, threshold alto, kernel size );
cv::Canny( detected_edges, detected_edges, 100, 200, 3 );
/// mostra a saída
cv::imshow("bordas", detected_edges);