int main(int argc, char *argv[]) { int m, n, c, iters; float kappa; image u, u_bar; unsigned char *image_chars; char *input_jpeg_filename, *output_jpeg_filename; /* read from command line: kappa, iters, input_jpeg_filename, output_jpeg_filename */ kappa = atof(argv[1]); iters = atoi(argv[2]); input_jpeg_filename = argv[3]; output_jpeg_filename = argv[4]; import_JPEG_file(input_jpeg_filename, &image_chars, &m, &n, &c); allocate_image (&u, m, n); allocate_image (&u_bar, m, n); convert_jpeg_to_image (image_chars, &u); iso_diffusion_denoising (&u, &u_bar, kappa, iters); convert_image_to_jpeg (&u, image_chars); export_JPEG_file(output_jpeg_filename, image_chars, m, n, c, 75); deallocate_image (&u); deallocate_image (&u_bar); return 0; }
int main(int argc, char *argv[]) { int m, n, c, iters; float kappa; Image u, u_bar; unsigned char *image_chars; char *input_jpeg_filename, *output_jpeg_filename; /* read from command line: kappa, iters, input_jpeg_filename, output_jpeg_filename */ if (argc > 4) { iters = atoi(argv[1]); kappa = atof(argv[2]); input_jpeg_filename = argv[3]; output_jpeg_filename = argv[4]; } else { printf("Usage: %s iters kappa input_file output_file\n", argv[0]); exit(1); } clock_t begin; double total_time; begin = clock(); /* ... */ import_JPEG_file(input_jpeg_filename, &image_chars, &m, &n, &c); allocate_image (&u, m, n); allocate_image (&u_bar, m, n); convert_jpeg_to_image (image_chars, &u); printf("Performing %d isotropic diffusions ...\n", iters); iso_diffusion_denoising (&u, &u_bar, kappa, iters); convert_image_to_jpeg (&u_bar, image_chars); deallocate_image (&u); deallocate_image (&u_bar); export_JPEG_file(output_jpeg_filename, image_chars, m, n, c, 75); total_time = (double) (clock() - begin) / CLOCKS_PER_SEC; printf("Total execution time: %g\n", total_time); return 0; }