int eqimg(imtype*im1,imtype*im2) { int i1,i2; i1=isimage(im1); i2=isimage(im2); if (!i1 && !i2) return 1; if (!i1 || !i2) return 0; if (im1->X!=im2->X || im1->Y!=im2->Y || im1->Z!=im2->Z) return 0; return 1; }
void add_sd(imtype*img,imtype*fimg,double m,int*n,double*sd,double mn0,double sd0,double mn) { int dx1,dx2,dy1,dy2,dz1,dz2,x,y,z; double v; float FMIN; if (!isimage(img)) return; parsecards(fimg,NULL,NULL,NULL,&FMIN,NULL,NULL,NULL,NULL,0,1); if (fimg!=&(scal.img)) parsecards(fimg,NULL,NULL,NULL,&FMIN,NULL,NULL,NULL,NULL,0,1); getsec(img,datasec,&dx1,&dx2,&dy1,&dy2,&dz1,&dz2); for (z=dz1;z<dz2;z++) for (y=dy1;y<dy2;y++) for (x=dx1;x<dx2;x++) if (fimg->data[z][y][x]>FMIN && (fabs((v=img->data[z][y][x]-m*fimg->data[z][y][x])-mn0)<=sd0 || sd0<0)) (*sd)+=(v-mn)*(v-mn); }
int main(int argc,char**argv) { int i,j; ftype mask,data; float DMIN,DMINe; if (argc<3) { printf("Usage: %s <mask> <images>\n",*argv); printf(" mask image defined such that zero = bad pixel\n"); return -1; } readfits(argv[1],&mask,1); for (i=2;i<argc;i++) { readfits(argv[i],&data,1); if (mask.Next!=data.Next || !eqimg(&(mask.img),&(data.img))) { printf("FITS images are not the same size\n"); } else { int sOK=1; parsecards(&data.img,NULL,NULL,NULL,&DMIN,NULL,NULL,NULL,NULL,0,1); if (isimage(&(mask.img))) { applymask(&(mask.img),&(data.img),DMIN); } for (j=0;j<mask.Next;j++) { DMINe=DMIN; if (!eqimg(mask.ext+j,data.ext+j)) { printf("FITS images are not the same size\n"); sOK=0; } else if (isimage(mask.ext+j)) { parsecards(data.ext+j,NULL,NULL,NULL,&DMINe,NULL,NULL,NULL,NULL,0,0); applymask(mask.ext+j,data.ext+j,DMINe); } } if (sOK) { writefits(argv[i],&data,1); } } } return 0; }
static void showobject(int num, int gen) { fz_error error; fz_obj *obj; if (!xref) die(fz_throw("no file specified")); error = pdf_loadobject(&obj, xref, num, gen); if (error) die(error); if (isimage(obj)) saveimage(obj, num, gen); else if (isfontdesc(obj)) savefont(obj, num, gen); fz_dropobj(obj); }
static void showobject(int num) { fz_error error; fz_obj *obj; if (!xref) die(fz_error_make(ctx, "no file specified")); error = pdf_load_object(&obj, xref, num, 0); if (error) die(error); if (isimage(obj)) saveimage(num); else if (isfontdesc(obj)) savefont(obj, num); fz_drop_obj(ctx, obj); }
static void showobject(int num) { pdf_obj *obj; if (!doc) fz_throw(ctx, FZ_ERROR_GENERIC, "no file specified"); fz_try(ctx) { obj = pdf_load_object(ctx, doc, num); if (isimage(obj)) saveimage(num); else if (isfontdesc(obj)) savefont(obj, num); pdf_drop_obj(ctx, obj); } fz_catch(ctx) { fz_warn(ctx, "ignoring object %d", num); } }