IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 2133


Ignore:
Timestamp:
Oct 14, 2004, 12:54:14 PM (22 years ago)
Author:
gusciora
Message:

Additional SubtractBias code.

Location:
trunk/psModules
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/pmSubtractBias.c

    r2132 r2133  
    66 *  @author George Gusciora, MHPCC
    77 *
    8  *  @version $Revision: 1.12 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2004-10-14 22:33:28 $
     8 *  @version $Revision: 1.13 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2004-10-14 22:54:14 $
    1010 *
    1111 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    252252
    253253    if (overScanAxis == PM_OVERSCAN_ALL) {
    254         psImageStats(stat, in->image, in->mask, 0xffffffff);
    255         p_psGetStatValue(stat, &statValue);
    256         p_psImageSubtractScalar(in->image, statValue);
     254        tmpOverscan = (psListElem *) overscans->head;
     255        while (NULL != tmpOverscan) {
     256            myOverscanImage = (psImage *) tmpOverscan->data;
     257            psImageStats(stat, myOverscanImage, NULL, 0xffffffff);
     258            p_psGetStatValue(stat, &statValue);
     259            p_psImageSubtractScalar(in->image, statValue);
     260
     261            tmpOverscan = tmpOverscan->next;
     262        }
    257263        return(in);
    258264    }
  • trunk/psModules/test/tst_pmSubtractBias.c

    r2132 r2133  
    77 *  @author GLG, MHPCC
    88 *
    9  *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2004-10-14 22:33:28 $
     9 *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2004-10-14 22:54:14 $
    1111 *
    1212 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    1717#include "pmSubtractBias.h"
    1818static int test00(void);
     19static int test01(void);
    1920testDescription tests[] = {
    2021                              {test00, 000, "pmSubtractBias", 0, false},
     22                              {test01, 000, "pmSubtractBias", 0, false},
    2123                              {NULL}
    2224                          };
     
    2830}
    2931
    30 #define NUM_ROWS 8
    31 #define NUM_COLS 8
     32#define NUM_ROWS 4
     33#define NUM_COLS 4
    3234int doSubtractBiasFullFrame(int numCols, int numRows)
    3335{
     
    3739    float expect;
    3840    int testStatus = 0;
    39     psImage *myImage1 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
    40     psImage *myImage2 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
    41     psReadout *myReadout = psReadoutAlloc(numCols, numRows, myImage1);
    42     psReadout *myBias = psReadoutAlloc(numCols, numRows, myImage2);
     41    psImage *tmpImage1 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
     42    psImage *tmpImage2 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
     43    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
     44    psReadout *myBias = psReadoutAlloc(numCols, numRows, tmpImage2);
    4345
    4446    for (i=0;i<numRows;i++) {
     
    7274}
    7375
     76
    7477int test00( void )
    7578{
    7679    int testStatus = 0;
    7780
     81    testStatus |= doSubtractBiasFullFrame(1, 1);
     82    testStatus |= doSubtractBiasFullFrame(NUM_COLS, 1);
     83    testStatus |= doSubtractBiasFullFrame(1, NUM_ROWS);
    7884    testStatus |= doSubtractBiasFullFrame(NUM_COLS, NUM_ROWS);
    7985
    8086    return(testStatus);
    8187}
     88
     89int doSubtractFullOverscans(int numCols, int numRows)
     90{
     91    int i;
     92    int j;
     93    float actual;
     94    float expect;
     95    int testStatus = 0;
     96    psImage *tmpImage1 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
     97    psImage *tmpImage2 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
     98    psImage *tmpImage3 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
     99    psImage *tmpImage4 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
     100    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
     101    psList *list;
     102    psStats *stat = psStatsAlloc(PS_STAT_SAMPLE_MEAN);
     103
     104    for (i=0;i<numRows;i++) {
     105        for (j=0;j<numCols;j++) {
     106            myReadout->image->data.F32[i][j] = (float) (i + j);
     107            tmpImage2->data.F32[i][j] = 3.0;
     108            tmpImage3->data.F32[i][j] = 4.0;
     109            tmpImage4->data.F32[i][j] = 5.0;
     110        }
     111    }
     112    list = psListAlloc(tmpImage2);
     113    psListAdd(list, PS_LIST_HEAD, tmpImage3);
     114    psListAdd(list, PS_LIST_HEAD, tmpImage4);
     115
     116    printPositiveTestHeader(stdout, "pmSubtractBias", "Multiple Overscan Frames");
     117
     118    myReadout = pmSubtractBias(myReadout, NULL, list, PM_OVERSCAN_ALL, stat,
     119                               0, PM_FIT_NONE, NULL);
     120
     121    for (i=0;i<numRows;i++) {
     122        for (j=0;j<numCols;j++) {
     123            expect = ((float) (i + j)) - 12.0;
     124            actual = myReadout->image->data.F32[i][j];
     125            if (FLT_EPSILON < fabs(expect - actual)) {
     126                printf("ERROR: image[%d][%d] is %f, should be %f\n", i, j, actual, expect);
     127                testStatus = 1;
     128            }
     129        }
     130    }
     131
     132
     133    psFree(myReadout);
     134    psFree(tmpImage2);
     135    psFree(tmpImage3);
     136    psFree(tmpImage4);
     137    psFree(stat);
     138    psFree(list);
     139
     140    printFooter(stdout, "pmSubtractBias", "Multiple Overscan Frames", true);
     141    return(testStatus);
     142}
     143
     144int test01( void )
     145{
     146    int testStatus = 0;
     147
     148    testStatus |= doSubtractFullOverscans(1, 1);
     149    testStatus |= doSubtractFullOverscans(1, NUM_ROWS);
     150    testStatus |= doSubtractFullOverscans(NUM_COLS, 1);
     151    testStatus |= doSubtractFullOverscans(NUM_COLS, NUM_ROWS);
     152
     153    return(testStatus);
     154}
Note: See TracChangeset for help on using the changeset viewer.