-
Notifications
You must be signed in to change notification settings - Fork 0
/
descritores.h
124 lines (99 loc) · 3.09 KB
/
descritores.h
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#ifndef _DESCRITORES_H
#define _DESCRITORES_H
#include <opencv2/highgui/highgui.hpp>
#include <math.h>
#include <queue>
#include <vector>
#include "funcoesAux.h"
using namespace cv;
using namespace std;
typedef struct
{
int i;
int j;
uchar color;
} Pixel;
/* Funcao Find Neighbor
* Encontra os vizinhos de um pixel
* Usada no descritor CCV
* Requer:
* - imagem original
* - fila de pixels
* - pixels ja visitados
* - tamanho da regiao */
void find_neighbor(Mat & img, queue<Pixel> & pixels, int * visited, long int & tam_reg);
/* Descritor CCV
* Cria dois histogramas de cor da imagem:
* 1 -> histograma de pixels coerentes
* 2 -> histograma de pixels incoerentes
* Requer:
* - imagem original
* - fistograma ja alocado, com duas vezes a quantidade de cor
* - quantidade de cores usadas na imagem
* - nivel de coerencia */
void CCV(Mat & img, Mat &features, int nColor, int oNorm, int threshold);
/* Descritor GCH
* Cria histrograma de cor da imagem.
* Requer:
* - imagem original
* - histrograma ja alocado
* - quantidade de cores usadas na imagem */
void GCH(Mat &I, Mat &features, int nColor, int oNorm);
/* Descritor BIC
* Cria dois histrogramas de cor da imagem:
* 1 -> histograma de borda
* 2 -> histograma de interior
* Requer:
* - imagem original
* - histograma ja alocado, com tamanho de duas vezes a quantidade de cor
* - quantidade de cores usadas na imagem
* No histograma, de 0 até (nColor -1) = Borda, de nColor até (2*nColor -1) = Interior */
void BIC(Mat &I, Mat &features, int nColor, int oNorm);
/* Funcao CoocurrenceMatrix
* Cria uma matriz que contem a ocorrencia de cada cor em cada pixel da imagem
* Requer:
* - imagem original
* - matriz ja alocada, no tamanho nColor x nColor
* - quantidade de cores usadas na imagem
* - coordenadas dX e dY, que podem ser 0 ou 1 */
void CoocurrenceMatrix(Mat &I, double **Cm, int nColor, int dX, int dY);
/* Funcao Haralick6
* Cria um histograma com 6 descritores de textura
* Requer:
* - matriz de coocorrencia
* - quantidade de cores usadas na imagem
* - histograma ja alocado
* Os descritores sao:
* - maxima Probabilidade
* - correlacao
* - contraste
* - energia (uniformidade)
* - homogeneidade
* - entropia */
void Haralick6(double **Cm, int nColor, Mat &features);
/* Descritor Haralick
* Cria um histograma com 6 descritores de textura
* Chama as funcoes Haralick6 e CoocurrenceMatrix
* Requer:
* - imagem original
* - matriz de coocorrencia
* - quantidade de cores usadas na imagem
* - histograma ja alocado
* Os descritores sao:
* - maxima Probabilidade
* - correlacao
* - contraste
* - energia (uniformidade)
* - homogeneidade
* - entropia */
void HARALICK(Mat &I, double **Cm, Mat &features, int nColor, int oNorm);
/* Descritor Autocorrelograma
* Cria um histograma de cor que descreve a distribuição
* global da correlação entre a localização espacial de cores
* Requer:
* - imagem original
* - valor da distancia k entre os pixels
* - histograma ja alocado
* - quantidade de cores usadas na imagem */
void ACC(Mat &I, Mat &features, int nColor, int oNorm, int *k, int totalk);
#endif