Professional Documents
Culture Documents
Introduo ao
OpenCV
Cristiano Rafael Steffens
cristianosteffens@furg.br
Universidade Federal do Rio Grande FURG
Centro de Cincias Computacionais
Agenda
O que a OpenCV?
Como instalar?
Hello World?
O que podemos fazer com OpenCV?
O que OpenCV?
OpenCV (Open Source Computer Vision) uma
biblioteca de programao com funes de
viso computacional de tempo real.
Distribuda sob a licena BSD.
Possui interfaces para C/C++, Python.
Possui suporte para Windows, Linux Androide
Mac OS.
http://
docs.opencv.org/doc/tutorials/introduction/linux_install/linux_
install.html
/usr/local/include/opencv
http://docs.opencv.org/doc/tutorials/introduction/linux_gcc_cma
ke/linux_gcc_cmake.html
Download em:
http://nootrix.com/2014/09/ros-indigo-virtual-machine/
No Windows:
Download do arquivo em
http://opencv.org/downloads.html
Procedimento detalhado:
http://
docs.opencv.org/doc/tutorials/introduction/windows_install
/windows_install.html
http://
docs.opencv.org/doc/tutorials/introduction/windows_visu
al_studio_Opencv/windows_visual_studio_Opencv.html
Aplicaes da OpenCV
Importante!! cv::Mat
Importante!! cv::Mat
// Operador de atribuio
A = B;
// Mostrar no console
cout << A;
// Clonar uma matriz
cv::Mat F = A.clone();
// Utilizar parte de uma matriz definindo uma regio de
interesse
cv::Mat D (A, cv::Rect(10, 10, 100, 100));
// Criando uma Mat
cv::Mat M(2,2, CV_8UC3);
cv::Mat O = cv::Mat::ones(3, 3, CV_32F);
cv::Mat Z = cv::Mat::zeros(3,3, CV_8UC1);
// Alterar uma posio (branco)
A.at<uchar>(x,y) = 255;
Ol turma!!
// includes da opencv
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
int main() {
// l a imagem para uma matriz
cv::Mat image = cv::imread("img.jpg");
// cria uma janela para mostrar a imagem
cv::namedWindow("Tutorial OpenCV - FURG");
// mostra a imagem
cv::imshow( "Tutorial OpenCV - FURG", image);
// aguarda 5000 ms
cv::waitKey(5000);
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;
}
Encontrando bordas
/// Converte a imagem para escala de cinza
cv::cvtColor( src, src_gray, CV_BGR2GRAY );
/// Remove o rudo da imagem utilizando um filtro de kernel 3x3
cv::blur( src_gray, detected_edges, Size(3,3) );
/// Detector de bordas de Canny
/// origem, sada, threshold baixo, threshold alto, kernel size );
cv::Canny( detected_edges, detected_edges, 100, 200,
3 );
/// mostra a sada
cv::imshow("bordas", detected_edges);