18 for (
int i = 0; i < nbands; i++)
28#define SIG struct One_Sig
41 for (n = 0; n < S->
nbands; n++)
45 S->
sig[i].have_color = 0;
46 snprintf(S->
sig[i].desc,
sizeof(S->
sig[i].desc),
"Class %d", i + 1);
65 for (i = 0; i < S->
nsigs; i++) {
66 for (n = 0; n < S->
nbands; n++)
72 for (n = 0; n < S->
nbands; n++)
112 for (i = 0; i < S->
nbands; i++) {
117 for (i = 0; i < S->
nbands; i++) {
118 for (n = 0; n <= i; n++) {
119 if (
fscanf(fd,
"%lf", &s->
var[i][n]) != 1)
121 s->
var[n][i] = s->
var[i][n];
124 if (
fscanf(fd,
"%f%f%f", &s->
r, &s->
g, &s->
b) == 3 && s->
r >= 0.0 &&
125 s->
r <= 1.0 && s->
g >= 0.0 && s->
g <= 1.0 && s->
b >= 0.0 && s->
b <= 1.0)
161 if (!(
ver == 1 ||
ver == 2)) {
162 G_warning(
_(
"Invalid signature file version"));
167 while ((c = (
char)
fgetc(fd)) !=
EOF)
178 while ((c = (
char)
fgetc(fd)) !=
EOF) {
194 (n + 1) *
sizeof(
char **));
202 G_warning(
_(
"Invalid signature file: semantic label length limit "
212 G_warning(
_(
"Signature file does not contain bands"));
218 G_warning(
_(
"Invalid signature file: Original class value presence not "
260 for (k = 0; k < S->
nbands; k++) {
267 for (k = 0; k < S->
nsigs; k++) {
279 for (i = 0; i < S->
nbands; i++)
282 for (i = 0; i < S->
nbands; i++) {
283 for (n = 0; n <= i; n++)
333 G_fatal_error(
"Programming error. Invalid length structs passed to "
334 "I_sort_signatures_by_semantic_label(%d, %d);",
339 for (
unsigned int j = R->
nfiles;
j--;) {
357 for (
unsigned int c = S->
nsigs; c--;) {
360 for (
unsigned int i = S->
nbands; i--;)
365 for (
unsigned int j = R->
nfiles;
j--;) {
366 for (
unsigned int i = S->
nbands; i--;) {
388 for (
unsigned int i = 0; i < (
unsigned int)S->
nbands; i++) {
409 for (
unsigned int j = 0;
j < (
unsigned int)R->
nfiles;
j++) {
432 for (
unsigned int c = S->
nsigs; c--;) {
435 for (
unsigned int b2 = 0;
b2 <=
b1;
b2++) {
450 S->
nbands *
sizeof(
char **));
451 for (
unsigned int c = S->
nsigs; c--;) {
453 for (
unsigned int i = S->
nbands; i--;)
455 S->
nbands *
sizeof(
double));
460 for (
unsigned int j = R->
nfiles;
j--;)
467 for (
unsigned int c = S->
nsigs; c--;) {
469 for (
unsigned int i = S->
nbands; i--;)
AMI_err name(char **stream_name)
void G_free(void *)
Free allocated memory.
void void void void G_fatal_error(const char *,...) __attribute__((format(printf
void G_warning(const char *,...) __attribute__((format(printf
void G_strip(char *)
Removes all leading and trailing white space from string.
char * G_store(const char *)
Copy string to allocated memory.
int I_get_to_eol(char *, int, FILE *)
char * Rast_get_semantic_label_or_name(const char *, const char *)
Get a raster map semantic label or fall back to its name.
int I_write_signatures(FILE *fd, struct Signature *S)
Write signatures to file.
int I_read_signatures(FILE *fd, struct Signature *S)
Read signatures from file.
int I_new_signature(struct Signature *S)
int I_init_signatures(struct Signature *S, int nbands)
Initialize struct Signature before use.
int I_read_one_signature(FILE *fd, struct Signature *S)
Internal function for I_read_signatures.
char ** I_sort_signatures_by_semantic_label(struct Signature *S, const struct Ref *R)
Reorder struct Signature to match imagery group member order.
int I_free_signatures(struct Signature *S)
Free memory allocated for struct Signature.