int gauss_filter_cli() { if(CLI_checkarg(1,4)+CLI_checkarg(2,3)+CLI_checkarg(3,1)+CLI_checkarg(4,2)==0) { gauss_filter(data.cmdargtoken[1].val.string, data.cmdargtoken[2].val.string, data.cmdargtoken[3].val.numf, data.cmdargtoken[4].val.numl); return 0; } else return 1; }
/* * Runs benchmark. */ int main(int argc, char **argv) { int i; /* Loop index. */ double *mask; /* Mask. */ uint64_t end; /* End time. */ uint64_t start; /* Start time. */ unsigned char *img; /* Image. */ readargs(argc, argv); timer_init(); srandnum(seed); /* Benchmark initialization. */ if (verbose) printf("initializing...\n"); start = timer_get(); img = smalloc(p->imgsize*p->imgsize*sizeof(char)); for (i = 0; i < p->imgsize*p->imgsize; i++) img[i] = randnum() & 0xff; mask = smalloc(p->masksize*p->masksize*sizeof(double)); generate_mask(mask); end = timer_get(); if (verbose) printf(" time spent: %f\n", timer_diff(start, end)*MICROSEC); /* Apply filter. */ if (verbose) printf("applying filter...\n"); start = timer_get(); gauss_filter(img, p->imgsize, mask, p->masksize); end = timer_get(); total = timer_diff(start, end); /* Print timing statistics. */ printf("timing statistics:\n"); printf(" master: %f\n", master*MICROSEC); for (i = 0; i < nclusters; i++) printf(" slave %d: %f\n", i, slave[i]*MICROSEC); printf(" communication: %f\n", communication*MICROSEC); printf(" total time: %f\n", total*MICROSEC); /* House keeping. */ free(mask); free(img); return (0); }
int main(int argc, char *argv[]) { image_t *img, *dst; if (argc < 3) { printf("Usage : <src_path> <dst_path>.\n"); } img = load_bmp(argv[1]); dst = gauss_filter(img, 10); save_as_bmp(dst, argv[2]); img_destroy(img); img_destroy(dst); return 0; }