void Extraction(char *img_path, char *fv_path) { CImage *cimg=NULL; Image *img=NULL; ImageHSV **imgHSV; //imagem no espaco HSV - mesmo tamanho da imagem original FeatureVector1D *sasi=NULL; int i,j; int sizes[3]; sizes[0]=3; sizes[1]=5; sizes[2]=7; FILE *fout; cimg = ReadCImage(img_path); img = CreateImage(cimg->C[0]->ncols, cimg->C[0]->nrows); //Alocacao da imagem no espaco HSV imgHSV = (ImageHSV**) calloc(cimg->C[0]->nrows, sizeof(ImageHSV*)); for (i=0; i<cimg->C[0]->nrows; i++) { imgHSV[i] = (ImageHSV*) calloc(cimg->C[0]->ncols, sizeof(ImageHSV)); } //converte para HSV RGB2HSV_sasi(cimg, imgHSV); //copia canal V do HSV para a imagem cinza for (i = 0; i < cimg->C[0]->nrows; i++) { for (j = 0; j < cimg->C[0]->ncols; j++) { img->val[j+img->tbrow[i]] = imgHSV[i][j].V; } } sasi = SASI(img, 3, sizes); if ((fout = fopen(fv_path, "wb")) == NULL) { printf("ERRO CRIANDO ARQUIVO DE FV\n"); exit(0); } //fprintf(fout,"%d\n",sasi->n); fwrite(&sasi->n,sizeof(int),1,fout); fwrite(sasi->X,sizeof(double),sasi->n,fout); fclose(fout); //liberando memoria imgHSV for (i=0; i<cimg->C[0]->nrows; i++) { free(imgHSV[i]); } free(imgHSV); DestroyFeatureVector1D(&sasi); DestroyCImage(&cimg); DestroyImage(&img); }
void Extraction(char *img_path, char *fv_path) { CImage *cimg=NULL; //imagem de entrada ImageHSV **imgHSV; //imagem no espaco HSV - mesmo tamanho da imagem original Image *img=NULL; float *unser=NULL; int i,j; //le img colorida cimg = ReadCImage(img_path); //Alocacao da imagem no espaco HSV imgHSV = (ImageHSV**) calloc(cimg->C[0]->nrows, sizeof(ImageHSV*)); for (i=0; i<cimg->C[0]->nrows; i++) { imgHSV[i] = (ImageHSV*) calloc(cimg->C[0]->ncols, sizeof(ImageHSV)); } //converte para HSV RGB2HSV_unser(cimg, imgHSV); //cria imagem cinza img = CreateImage(cimg->C[0]->ncols, cimg->C[0]->nrows); //copia canal V do HSV para a imagem cinza for (i = 0; i < cimg->C[0]->nrows; i++) { for (j = 0; j < cimg->C[0]->ncols; j++) { img->val[j+img->tbrow[i]] = imgHSV[i][j].V; } } unser = Unser_float(img); //agora retorna um float* FILE *fp; if ((fp = fopen(fv_path, "wb")) == NULL) { printf("ERRO CRIANDO ARQUIVO DE FV\n"); exit(0); } fwrite(unser, sizeof(float), SIZE, fp); fclose(fp); //liberando memoria for (i=0; i<cimg->C[0]->nrows; i++) { free(imgHSV[i]); } free(imgHSV); free(unser); DestroyCImage(&cimg); DestroyImage(&img); }
void Extraction(char *img_path, char *fv_path) { CImage *cimg=NULL; Histogram *acc=NULL; cimg = ReadCImage(img_path); acc = ACC(cimg); WriteFileHistogram(acc,fv_path); DestroyHistogram(&acc); DestroyCImage(&cimg); }
void Extraction(char *img_path, char *fv_path) { CImage *cimg=NULL; Image *mask=NULL; Histogram *lch=NULL; cimg = ReadCImage(img_path); mask = CreateImage(cimg->C[0]->ncols, cimg->C[0]->nrows); lch = LCH(cimg, mask); WriteFileHistogram(lch,fv_path); DestroyHistogram(&lch); DestroyCImage(&cimg); DestroyImage(&mask); }
void Extraction(char *img_path, char *fv_path) { CImage *cimg=NULL; Image *mask=NULL; Histogram *bic=NULL; cimg = ReadCImage(img_path); mask = CreateImage(cimg->C[0]->ncols, cimg->C[0]->nrows); bic = BIC(cimg, mask); WriteFileHistogram(bic,fv_path); DestroyHistogram(&bic); DestroyImage(&mask); DestroyCImage(&cimg); }
int main(int argc, char** argv) { CImage *cimg=NULL; Histogram *acc=NULL; if (argc != 3) { fprintf(stderr,"usage: acc_extraction <img_path> <fv_path>\n"); exit(-1); } cimg = ReadCImage(argv[1]); acc = ACC(cimg); WriteFileHistogram(acc,argv[2]); DestroyHistogram(&acc); DestroyCImage(&cimg); return(0); }