35 #include "vircam_mods.h"
36 #include "vircam_utils.h"
37 #include "vircam_fits.h"
85 extern int vircam_darkcor(vir_fits *infile, vir_fits *darksrc,
float darkscl,
90 cpl_propertylist *oplist;
91 const char *fctid =
"vircam_darkcor";
95 if (*status != VIR_OK)
101 if (cpl_propertylist_has(oplist,
"ESO DRS DARKCOR"))
109 cpl_msg_error(fctid,
"Object and dark data array dimensions don't match");
116 if (darkscl == 1.0) {
117 if (cpl_image_subtract(im,dm) != CPL_ERROR_NONE)
123 idata = cpl_image_get_data_float(im);
124 ddata = cpl_image_get_data_float(dm);
125 if (idata == NULL || ddata == NULL)
127 n = (long)cpl_image_get_size_x(im)*(long)cpl_image_get_size_y(im);
128 for (i = 0; i < n; i++)
129 idata[i] -= darkscl*ddata[i];
135 if (oplist != NULL) {
137 cpl_propertylist_update_string(oplist,
"ESO DRS DARKCOR",
140 cpl_propertylist_update_string(oplist,
"ESO DRS DARKCOR",
142 cpl_propertylist_set_comment(oplist,
"ESO DRS DARKCOR",
143 "Image used for dark correction");
144 cpl_propertylist_update_float(oplist,
"ESO DRS DARKSCL",darkscl);
145 cpl_propertylist_set_comment(oplist,
"ESO DRS DARKSCL",
146 "Scaling factor used in dark correction");