00001 #include "sadie.h"
00002 #include "proto.h"
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 void IMG2ASCII (
00013 IMAGE *in
00014
00015 ) { register short i, j, k;
00016 char msg[SLEN];
00017 int value;
00018
00019
00020 if (NAMES) {
00021 MESSAGE('I',"");
00022 MESSAGE('I',"IMG2ASCII");
00023 MESSAGE('I',"");
00024 sprintf(msg," Input image: %s",in->text);
00025 MESSAGE('I',msg);
00026 MESSAGE('I'," ...............");
00027 }
00028
00029
00030 if (!CHECKIMG(in)) {
00031 MESSAGE('E'," Can't identify image.");
00032 goto the_end;
00033 }
00034
00035
00036 RANGE(in);
00037
00038
00039 if (in->nbnd > 1) {
00040 MESSAGE('E'," Input image must be single band!");
00041 goto the_end;
00042 }
00043
00044
00045
00046
00047 if (in->gmin < 0.0 || 999.0 < in->gmax) {
00048 MESSAGE('E'," Input image must have integer DNs in the range 0-999!");
00049 goto the_end;
00050 }
00051
00052
00053
00054 if (in->npix <= 50) {
00055 for (j=0; j<in->nlin; j++) {
00056 for (k=i=0,msg[i++]=' '; k<in->npix; k++,i=strlen(msg)) {
00057 value = (int) rnd((double)(in->data[0][j][k]));
00058 sprintf(msg+i,"%4d",value);
00059 }
00060 MESSAGE('I',msg);
00061 }
00062 } else {
00063 for (j=0; j<in->nlin; j++) {
00064 for (k=0; k<in->npix; k++) {
00065 value = (int) rnd((double)(in->data[0][j][k]));
00066 printf("%4d",value);
00067 }
00068 printf("\n");
00069 }
00070 }
00071
00072
00073 the_end:
00074
00075 }