Curso de OpenCV - Histograma e Contornos
George Brindeiro
Luan Caius
Histogramas
Criando um histograma
Manipulações básicas
Template Matching
Contornos
MemoryStorage e Sequences
Operações com Sequences
Método ContourFinding
FreemanCode
Características dos contornos
Curso Básico de OpenCV
2
O que é um histograma?
O histograma é um gráfico composto por retângulos justapostos em que a base de cada um deles corresponde ao intervalo de classe e a sua altura à respectiva freqüência.
Curso Básico de OpenCV
3
Curso Básico de OpenCV
4
Curso Básico de OpenCV
5
Curso Básico de OpenCV
6
Curso Básico de OpenCV
7
CvHistogram* cvCreateHist( int dims, int* sizes, int type, float** ranges = NULL, int uniform = 1
);
• dims: Quantidade de dimensões do histograma.
• sizes: Tamanho do histograma, sendo proporcional ao dims (é um vetor!).
• type: Pode ser CV_HIST_ARRAY para matrizes multidimensionais (CvMatND) ou
CV_HIST_SPARSE para matrizes esparsas (CvSparseMat).
• ranges: para um histograma uniforme é um vetor de float e mostra o intervalo de cada dim.
• uniform: caso seja 1, divide o histograma em intervalos iguais.
Curso Básico de OpenCV
8
typedef struct CvHistogram
{
int type; CvArr* bins; float thresh[CV_MAX_DIM][2]; float** thresh2; CvMatND mat; }CvHistogram;
• type: Pode ser CV_HIST_ARRAY para matrizes multidimensionais
(CvMatND) ou CV_HIST_SPARSE* para matrizes esparsas (CvSparseMat).
• bins: matriz do histograma .
• thresh: equivalente ao ranges caso seja um histograma uniforme.
• thresh2: equivalente ao ranges caso não seja um histograma uniforme.
• uniform: caso seja 1, divide o histograma em intervalos iguais.
Curso Básico de OpenCV
9
Calculando o valor de um histograma void cvCalcHist (
IplImage** image,
CvHistogram* hist, int accumulate = 0, const CvArr* mask=NULL );
Recebe a imagem que vai ser utilizada e o histograma.
Se