#include #include #include #include //#include #include int main() { IplImage* image, image2; char caminho[9999]; int i, j, k, classe = 0, l, m, n; float teste; FILE * fp; errno_t err; //*** CRIA O ARQUIVO ARFF E SALVA O CABEÇALHO *** //fp = fopen("baseLBP.arff", "w"); err = fopen_s(&fp, "baseLBP.arff", "w"); //fprintf(fp, "%base de teste criada por Alessandro and Zacarias para a disciplina de PDI - Engenharia de Software UEPG\n\n"); fprintf(fp, "@relation imgs_teste_lbp\n\n"); for (i = 0; i<256; i++) fprintf(fp, "@attribute At%i numeric\n", (i / 256)); fprintf(fp, "@attribute Class {1,2,3,4,5,6,7,8,9,10}\n\n"); fprintf(fp, "@DATA\n"); for (i = 0; i<2; i++) { //sprintf(caminho, "C:\\Downloads\\image\\%d.jpg", i); sprintf_s(caminho, 9999, "C:\\Downloads\\image\\%d.jpg", i); image = cvLoadImage(caminho, 0); float h[256];// vetor de features com 256 valores disponiveis for (n = 0; n<256; n++) h[n] = 0.0; //inicializa vetor de features //*** VERIFICA SE EH UMA NOVA CLASSE (TIPO DA IMAGEM)*** if (i % 100 == 0) { //a cada 100 muda a categoria das fotos classe = classe + 1; } int lbp[3][3];//vetor do lbp int lbpBinario[3][3];//vetor do lbp binario int largura = image->width - 4; int altura = image->height - 4; for (j = 0; j= central) { lbpBinario[l][n] = 1; } else { lbpBinario[l][n] = 0; } } } central = 0;//agora vai pegar os binarios e trasformar no novo decimal que sera o novo valor da cadeia LBP, gambiarra para trasnformar um decimal que eh `binario` em decimarl central = central + (128 * lbpBinario[0][0]); central = central + (64 * lbpBinario[0][1]); central = central + (32 * lbpBinario[0][2]); central = central + (16 * lbpBinario[1][2]); central = central + (8 * lbpBinario[2][2]); central = central + (4 * lbpBinario[2][1]); central = central + (2 * lbpBinario[2][0]); central = central + (1 * lbpBinario[1][0]); h[central]++; // histograma LBP } } // Normalização for (n = 0; n<256; n++) h[n] = h[n] / (largura * altura); // Salve em arquivo for (n = 0; n<256; n++) { fprintf(fp, "%f,", (h[n])); } // Salva a classe fprintf(fp, "%d\n", classe); } fclose(fp); return 0; }