#ifndef GRASS_IMAGEDEFS_H #define GRASS_IMAGEDEFS_H /* alloc.c */ void *I_malloc(size_t); void *I_realloc(void *, size_t); int I_free(void *); double **I_alloc_double2(int, int); int *I_alloc_int(int); int **I_alloc_int2(int, int); int I_free_int2(int **); int I_free_double2(double **); double ***I_alloc_double3(int, int, int); int I_free_double3(double ***); /* eol.c */ int I_get_to_eol(char *, int, FILE *); /* find.c */ int I_find_group(const char *); int I_find_group2(const char *, const char *); int I_find_group_file(const char *, const char *); int I_find_group_file2(const char *, const char *, const char *); int I_find_subgroup(const char *, const char *); int I_find_subgroup2(const char *, const char *, const char *); int I_find_subgroup_file(const char *, const char *, const char *); int I_find_subgroup_file2(const char *, const char *, const char *, const char *); const char *I_find_signature(I_SIGFILE_TYPE, char *, const char *); const char *I_find_signature2(I_SIGFILE_TYPE, const char *, const char *); /* fopen.c */ FILE *I_fopen_group_file_new(const char *, const char *); FILE *I_fopen_group_file_append(const char *, const char *); FILE *I_fopen_group_file_old(const char *, const char *); FILE *I_fopen_group_file_old2(const char *, const char *, const char *); FILE *I_fopen_subgroup_file_new(const char *, const char *, const char *); FILE *I_fopen_subgroup_file_append(const char *, const char *, const char *); FILE *I_fopen_subgroup_file_old(const char *, const char *, const char *); FILE *I_fopen_subgroup_file_old2(const char *, const char *, const char *, const char *); /* georef.c */ int I_compute_georef_equations(struct Control_Points *, double *, double *, double *, double *, int); int I_georef(double, double, double *, double *, double *, double *, int); /* georef_tps.c */ int I_compute_georef_equations_tps(struct Control_Points *, double **, double **, double **, double **); int I_georef_tps(double, double, double *, double *, double *, double *, struct Control_Points *, int); /* group.c */ int I_get_group(char *); int I_put_group(const char *); int I_get_subgroup(const char *, char *); int I_put_subgroup(const char *, const char *); int I_get_group_ref(const char *, struct Ref *); int I_get_group_ref2(const char *, const char *, struct Ref *); int I_get_subgroup_ref(const char *, const char *, struct Ref *); int I_get_subgroup_ref2(const char *, const char *, const char *, struct Ref *); int I_init_ref_color_nums(struct Ref *); int I_put_group_ref(const char *, const struct Ref *); int I_put_subgroup_ref(const char *, const char *, const struct Ref *); int I_add_file_to_group_ref(const char *, const char *, struct Ref *); int I_transfer_group_ref_file(const struct Ref *, int, struct Ref *); int I_init_group_ref(struct Ref *); int I_free_group_ref(struct Ref *); /* iclass.c */ struct Map_info; int I_iclass_analysis(IClass_statistics *, struct Ref *, struct Map_info *, const char *, const char *, const char *); int I_iclass_init_group(const char *, const char *, struct Ref *); void I_iclass_create_raster(IClass_statistics *, struct Ref *, const char *); /* iclass_statistics.c */ void I_iclass_statistics_get_nbands(IClass_statistics *, int *); void I_iclass_statistics_get_cat(IClass_statistics *, int *); void I_iclass_statistics_get_name(IClass_statistics *, const char **); void I_iclass_statistics_get_color(IClass_statistics *, const char **); void I_iclass_statistics_get_ncells(IClass_statistics *, int *); int I_iclass_statistics_get_max(IClass_statistics *, int, int *); int I_iclass_statistics_get_range_max(IClass_statistics *, int, int *); int I_iclass_statistics_get_min(IClass_statistics *, int, int *); int I_iclass_statistics_get_range_min(IClass_statistics *, int, int *); int I_iclass_statistics_get_sum(IClass_statistics *, int, float *); int I_iclass_statistics_get_mean(IClass_statistics *, int, float *); int I_iclass_statistics_get_stddev(IClass_statistics *, int, float *); void I_iclass_statistics_get_nstd(IClass_statistics *, float *); void I_iclass_statistics_set_nstd(IClass_statistics *, float); int I_iclass_statistics_get_histo(IClass_statistics *, int, int, int *); int I_iclass_statistics_get_product(IClass_statistics *, int, int, float *); void I_iclass_init_statistics(IClass_statistics *, int, const char *, const char *, float); void I_iclass_free_statistics(IClass_statistics *); /* iclass_signatures.c */ int I_iclass_init_signatures(struct Signature *, struct Ref *); void I_iclass_add_signature(struct Signature *, IClass_statistics *); int I_iclass_write_signatures(struct Signature *, const char *); /* list_gp.c */ int I_list_group(const char *, const struct Ref *, FILE *); int I_list_group_simple(const struct Ref *, FILE *); void I__list_group_name_fit(char *, const char *, const char *); /* list_subgp.c */ char ** I_list_subgroups(const char *, int *); char ** I_list_subgroups2(const char *, const char *, int *); int I_list_subgroup(const char *, const char *, const struct Ref *, FILE *); int I_list_subgroup_simple(const struct Ref *, FILE *); /* loc_info.c */ char *I_location_info(const char *); /* points.c */ int I_new_control_point(struct Control_Points *, double, double, double, double, int); int I_get_control_points(const char *, struct Control_Points *); int I_put_control_points(const char *, const struct Control_Points *); /* ref.c */ FILE *I_fopen_group_ref_new(const char *); FILE *I_fopen_group_ref_old(const char *); FILE *I_fopen_group_ref_old2(const char *, const char *); FILE *I_fopen_subgroup_ref_new(const char *, const char *); FILE *I_fopen_subgroup_ref_old(const char *, const char *); FILE *I_fopen_subgroup_ref_old2(const char *, const char *, const char *); /* iscatt_structs.c */ void I_sc_init_cats(struct scCats *, int, int); void I_sc_free_cats(struct scCats *); int I_sc_add_cat(struct scCats *); int I_sc_insert_scatt_data(struct scCats *, struct scdScattData *, int, int); void I_scd_init_scatt_data(struct scdScattData *, int, int, void *); /* iscatt_core.c */ int I_compute_scatts(struct Cell_head *, struct scCats *, const char **, const char **, int, struct scCats *, const char **); int I_create_cat_rast(struct Cell_head *, const char *); int I_insert_patch_to_cat_rast(const char *, struct Cell_head *, const char *); int I_id_scatt_to_bands(const int, const int, int *, int *); int I_bands_to_id_scatt(const int, const int, const int, int *); int I_merge_arrays(unsigned char *, unsigned char *, unsigned, unsigned, double); int I_apply_colormap(unsigned char *, unsigned char *, unsigned, unsigned char *, unsigned char *); int I_rasterize(double *, int, unsigned char, struct Cell_head *, unsigned char *); /* manage_signatures.c */ void I_get_signatures_dir(char *, I_SIGFILE_TYPE); void I_make_signatures_dir(I_SIGFILE_TYPE); int I_signatures_remove(I_SIGFILE_TYPE, const char *); int I_signatures_copy(I_SIGFILE_TYPE, const char *, const char *, const char *); int I_signatures_rename(I_SIGFILE_TYPE, const char *, const char *); int I_signatures_list_by_type(I_SIGFILE_TYPE, const char *, char ***); void I_free_signatures_list(int, char ***); /* sig.c */ int I_init_signatures(struct Signature *, int); int I_new_signature(struct Signature *); int I_free_signatures(struct Signature *); int I_read_one_signature(FILE *, struct Signature *); int I_read_signatures(FILE *, struct Signature *); int I_write_signatures(FILE *, struct Signature *); char **I_sort_signatures_by_semantic_label(struct Signature *, const struct Ref *); /* sigfile.c */ FILE *I_fopen_signature_file_new(const char *); FILE *I_fopen_signature_file_old(const char *); /* sigset.c */ int I_SigSetNClasses(struct SigSet *); struct ClassData *I_AllocClassData(struct SigSet *, struct ClassSig *, int); int I_InitSigSet(struct SigSet *, int); struct ClassSig *I_NewClassSig(struct SigSet *); struct SubSig *I_NewSubSig(struct SigSet *, struct ClassSig *); int I_ReadSigSet(FILE *, struct SigSet *) WARN_UNUSED_RESULT; int I_SetSigTitle(struct SigSet *, const char *); const char *I_GetSigTitle(const struct SigSet *); int I_SetClassTitle(struct ClassSig *, const char *); const char *I_GetClassTitle(const struct ClassSig *); int I_WriteSigSet(FILE *, const struct SigSet *); char **I_SortSigSetBySemanticLabel(struct SigSet *, const struct Ref *); /* sigsetfile.c */ FILE *I_fopen_sigset_file_new(const char *); FILE *I_fopen_sigset_file_old(const char *); /* target.c */ int I_get_target(const char *, char *, char *); int I_put_target(const char *, const char *, const char *); /* title.c */ int I_get_group_title(const char *, char *, int); int I_put_group_title(const char *, const char *); /* var.c */ double I_variance(double, double, int); double I_stddev(double, double, int); #endif