You are on page 1of 11

Uma Rpida

Introduo ao
OpenCV (cont.)
Cristiano Rafael Steffens
cristianosteffens@furg.br
Universidade Federal do Rio Grande FURG
Centro de Cincias Computacionais

Reviso
Quais os principais tipos de dados da OpenCV?
Quais so mdulos da OpenCV?
Qual o namespace da OpenCV?
Para que so utilizados os comandos imread,
imwrite, imshow, cvtColor, blur, GaussianBlur,
normalize, erode, dilate?

Onde posso encontrar


outros exemplos?
Tutoriais oficiais: http://
docs.opencv.org/doc/tutorials/tutorials.html
OCR, integrao com Web (HTML, Javascript),
solucionador de labiririnto e outros projetos
interesantes: http://opencv-code.com

Importante!! cv::Mat

Desenhar um quadrado preto com um X, um


crculo e um retngulo
/// Cria uma matriz zerada do tamanho

Mat minha_imagem = Mat::zeros(tamanho,tamanho,


CV_8UC1);
for(int y = 0; y < minha_imagem.rows; y++)
{
for(int x = 0; x < minha_imagem.cols; x++)
{
if(x==y || (tamanho-x) == y)
minha_imagem.at<uchar>(x,y) = 255;
}
}
///Desenha um curculo no centro com raio 0.20
circle(minha_imagem, Point(tamanho/2, tamanho/2),
tamanho/5, Scalar::all(127), 1);
/// Desenha um retngulo
rectangle(minha_imagem, Point(tamanho/4, tamanho/4),
Point(3*tamanho/4, 3*tamanho/4),Scalar::all(200), 1);

Detectar crculos utilizando


a transformada de Hough
/// src_gray: Input image (grayscale)
/// circles: A vector that stores sets of 3 values: x_{c}, y_{c}, r for each
detected circle.
/// CV_HOUGH_GRADIENT: Define the detection method. Currently this is
the only one available in OpenCV
/// dp = 1: The inverse ratio of resolution
/// min_dist = src_gray.rows/8: Minimum distance between detected
centers
/// param_1 = 200: Upper threshold for the internal Canny edge detector
/// param_2 = 100*: Threshold for center detection.
/// min_radius = 0: Minimum radio to be detected. If unknown, put zero as
default.
/// max_radius = 0: Maximum radius to be detected. If unknown, put zero
as default
HoughCircles( src_gray, circles, CV_HOUGH_GRADIENT, 1,
src_gray.rows/16, 200, 100, 0, 0 );

Filtros Lineares
Funes:
Blur
GaussianBlur
medianBlur
bilateralFilter

Threshold
Binary
Binary Inverted
Truncate To Zero
To Zero Inverted

Trabalhando com Vdeos


// l video que veio no primeiro argumento
VideoCapture cap( argv[1] );
if ( !cap.isOpened() ){ cout << "Cannot open the video file" <<
endl; return -1; }
Mat frame;
// enquanto existirem frames
while( cap.read(frame) )
{
// mostra a imagem
imshow("Video", frame);
// espera at que um esc seja pressionado
if(waitKey(30) == 27)
{ break; }
}

Histogramas
Definio:
Um histograma uma ferramenta de anlise e
representao de dados quantitativos, agrupados em
classes de frequncia que permite distinguir a forma, o
ponto central e a variao da distribuio, alm de
outros dados como amplitude e simetria na distribuio
dos dados.
Documentao:
http://docs.opencv.org/modules/imgproc/doc/histogram
s.html

Pretty cool! Huh!

You might also like