- Timestamp:
- Mar 29, 2019, 6:29:50 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ohana.20190329/src/opihi/cmd.data/medimage_commands.c
r40654 r40661 17 17 Buffer *image; 18 18 19 if (argc != 3) { 20 gprint (GP_ERR, "USAGE: medimage add (name) (image)\n"); 19 Buffer *var = NULL; 20 if ((N = get_argument (argc, argv, "-var"))) { 21 remove_argument (N, &argc, argv); 22 if ((var = SelectBuffer (argv[N], OLDBUFFER, TRUE)) == NULL) return (FALSE); 23 remove_argument (N, &argc, argv); 24 } 25 26 if (argc != 3) { 27 gprint (GP_ERR, "USAGE: medimage add (name) (image) [-var var]\n"); 21 28 gprint (GP_ERR, " add the given image to the set of images to be medianed\n"); 29 gprint (GP_ERR, " optionally supply variance image (for weighted calculations)\n"); 22 30 return FALSE; 23 31 } 24 32 25 33 if ((image = SelectBuffer (argv[2], OLDBUFFER, TRUE)) == NULL) return (FALSE); 34 35 XXX: match dimensions wit var image 26 36 27 37 MedImageType *median = FindMedImage (argv[1]); … … 48 58 int Ninput = median->Ninput; 49 59 median->Ninput ++; 50 REALLOCATE (median->buffers, float *, median->Ninput); 51 52 ALLOCATE (median->buffers[Ninput], float, median->Nx*median->Ny); 53 memcpy (median->buffers[Ninput], image->matrix.buffer, sizeof(float)*median->Nx*median->Ny); 60 REALLOCATE (median->sig, float *, median->Ninput); 61 REALLOCATE (median->var, float *, median->Ninput); 62 63 ALLOCATE (median->sig[Ninput], float, median->Nx*median->Ny); 64 memcpy (median->sig[Ninput], image->matrix.buffer, sizeof(float)*median->Nx*median->Ny); 65 66 median->var[Ninput] = NULL; 67 if (var) { 68 ALLOCATE (median->var[Ninput], float, median->Nx*median->Ny); 69 memcpy (median->var[Ninput], var->matrix.buffer, sizeof(float)*median->Nx*median->Ny); 70 } 54 71 55 72 return TRUE; … … 100 117 int Npix = ix + Nx*iy; 101 118 for (n = 0; n < Ninput; n++) { 102 float v = median-> buffers[n][Npix];119 float v = median->sig[n][Npix]; 103 120 if (!isfinite(v)) continue; 104 121 value[N] = v; … … 106 123 } 107 124 if (N == 0) continue; 125 126 XXXX: add in calc options: 127 weighted mean 128 irls 108 129 109 130 if (CALC_MEAN) {
Note:
See TracChangeset
for help on using the changeset viewer.
