IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 6, 2006, 5:27:52 PM (20 years ago)
Author:
Paul Price
Message:

Moving additional pslib functions over to psLib proper. Some API changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/camera/pmFPACopy.c

    r7278 r7382  
    22#include <assert.h>
    33
    4 #include "pslib.h"
    5 #include "psImageFlip.h"
    6 #include "psRegionIsBad.h"
     4#include <pslib.h>
    75
    86#include "pmFPA.h"
     
    1715// File-static functions
    1816//////////////////////////////////////////////////////////////////////////////////////////////////////////////
    19 
    20 // Copy pixels from a target image to a source image, with flips
    21 static psImage *copyPixels(psImage *source, // Source image (from source cell)
    22                            bool xFlip,      // Flip in x?
    23                            bool yFlip       // Flip in y?
    24                           )
    25 {
    26     assert(source);
    27 
    28     psImage *copy = psMemIncrRefCounter(source);
    29     bool copied = false;                // Have the pixels been copied?
    30     if (xFlip) {
    31         psImage *temp = psImageFlipX(copy); // Flipped version
    32         psFree(copy);
    33         copy = temp;
    34         copied = true;
    35     }
    36     if (yFlip) {
    37         psImage *temp = psImageFlipY(copy); // Flipped version
    38         psFree(copy);
    39         copy = temp;
    40         copied = true;
    41     }
    42     if (!copied) {
    43         psFree(copy);
    44         copy = psImageCopy(NULL, source, source->type.type);
    45     }
    46 
    47     return copy;
    48 }
    4917
    5018// Bin a region down by specified factors in x and y
     
    154122                    psFree(targetReadout->image);
    155123                }
    156                 targetReadout->image = copyPixels(sourceReadout->image, xFlip, yFlip);
     124                targetReadout->image = psImageFlip(NULL, sourceReadout->image, xFlip, yFlip);
    157125            }
    158126
     
    162130                    psFree(targetReadout->mask);
    163131                }
    164                 targetReadout->mask = copyPixels(sourceReadout->mask, xFlip, yFlip);
     132                targetReadout->mask = psImageFlip(NULL, sourceReadout->mask, xFlip, yFlip);
    165133            }
    166134
     
    170138                    psFree(targetReadout->weight);
    171139                }
    172                 targetReadout->weight = copyPixels(sourceReadout->weight, xFlip, yFlip);
     140                targetReadout->weight = psImageFlip(NULL, sourceReadout->weight, xFlip, yFlip);
    173141            }
    174142
     
    181149            psImage *bias = NULL;           // Bias image from iteration
    182150            while ((bias = psListGetAndIncrement(biasIter))) {
    183                 psImage *biasCopy = copyPixels(bias, xFlip, yFlip);
     151                psImage *biasCopy = psImageFlip(NULL, bias, xFlip, yFlip);
    184152                psListAdd(targetReadout->bias, PS_LIST_TAIL, biasCopy);
    185153                psFree(biasCopy);           // Drop reference
     
    209177    if (xBin != 1 || yBin != 1) {
    210178        psRegion *trimsec = psMetadataLookupPtr(&mdok, target->concepts, "CELL.TRIMSEC"); // The trim section
    211         if (mdok && trimsec && !psRegionIsBad(*trimsec)) {
     179        if (mdok && trimsec && !psRegionIsNaN(*trimsec)) {
    212180            binRegion(trimsec, xBin, yBin);
    213181        }
     
    217185            psRegion *biassec = NULL;   // Bias section, from iteration
    218186            while ((biassec = psListGetAndIncrement(biassecsIter))) {
    219                 if (!psRegionIsBad(*biassec)) {
     187                if (!psRegionIsNaN(*biassec)) {
    220188                    binRegion(biassec, xBin, yBin);
    221189                }
Note: See TracChangeset for help on using the changeset viewer.