#define PROG_NAME "test_povray_camera" #define PROG_DESC "tests the conversion from Tsai camera matrix to POV-Ray camera spec" #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include int32_t main (int32_t argc, char *argv[]) { char *frame_prefix = argv[1]; tf_camera_params_t *cpar = tf_camera_specs_get_new_mean_params(cspec); FILE *f_cpars = fopen(argv[3], "r"); int32_t n_p_w; tf_calib_data_t *cdat = tf_calib_data_new(); tf_calib_data_read_world_points (argv[4], &n_p_w, &(cdat->world)); while (!feof(f_cpars)) { char *frame_name = NULL; int32_t frame = tf_camera_params_read (f_cpars, cpar); fprintf(stderr, "O frame lido foi %d\n", frame); asprintf(&frame_name, "%s%05d.pgm", frame_prefix, frame); image_t img = image_read_pgm (frame_name); fprintf(stderr, "In camera parameters:\n"); tf_camera_params_print (cpar, stderr); int32_t i; mkdir("out", 0777); char *out_dir = NULL; asprintf(&out_dir, "points/%05d", frame); /* Creating the frame directory */ assert(mkdir(out_dir, 0777)==0); fprintf(stdout, "######################### Frame: %d\n", frame); fprintf(stdout, "tdat->ntargets: %d\n", n_p_w); /* Output Postscript file: */ char *cross_fname = NULL; asprintf(&cross_fname, "out/cross_%05d.pgm", frame); image_write_pgm (img, PGM_RAW_MAGIC, MAXVAL, cross_fname); free(cross_fname); free(frame_name); image_free(img); } if (strcmp(argv[5], "none") != 0) { fclose(f_true); } return 0; }