Changeset 599
- Timestamp:
- May 6, 2004, 4:56:52 PM (22 years ago)
- Location:
- trunk/psLib/src
- Files:
-
- 2 added
- 2 edited
-
image/psImage.c (added)
-
image/psImage.h (modified) (1 diff)
-
mathtypes/psImage.c (added)
-
mathtypes/psImage.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/image/psImage.h
r597 r599 1 /** @file psImage.h 2 * 3 * @brief Contains basic image definitions and operations 4 * 5 * This file defines the basic type for an image struct and functions useful in manupulating images. 6 * 7 * @author Ross Harman, MHPCC 8 * 9 * @version $Revision: 1.2 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2004-05-07 02:56:52 $ 11 * 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii 13 */ 1 14 # ifndef PS_IMAGE_H 2 15 # define PS_IMAGE_H 3 16 4 /** \file psImage.h 5 * \brief Basic image definitions and operations. 6 * \ingroup AstroGroup 7 */ 8 9 /// basic image data structure. 17 #include <complex.h> 18 19 /******************************************************************************/ 20 /* DEFINE STATEMENTS */ 21 /******************************************************************************/ 22 23 // None 24 25 /******************************************************************************/ 26 /* TYPE DEFINITIONS */ 27 /******************************************************************************/ 28 29 /** Basic image data structure. 30 * 31 * Struct for maintaining image data of varying types. It also contains information about image size, parent 32 * images and children images. 33 * 34 */ 10 35 typedef struct psImage 11 36 { 12 psType type; ///< image data type and dimension13 int nx, ny; ///< size of image14 int x0, y0; ///< data region relative to parent37 psType type; ///< Image data type and dimension. 38 int nx, ny; ///< Size of image. 39 int x0, y0; ///< Data region relative to parent. 15 40 union { 16 psF32 **rows; ///< == rows_f3217 psS8 **rows_s8; ///< pointers to psS8 data18 psS16 **rows_s16; ///< pointers to psS16 data19 psS32 **rows_s32; ///< pointers to psS32 data20 psU8 **rows_u8; ///< pointers to psU8 data21 psU16 **rows_u16; ///< pointers to psU16 data22 psU32 **rows_u32; ///< pointers to psU32 data23 psF32 **rows_f32; ///< pointers to psF32 data24 psF64 **rows_f64; ///< pointers to psF64 data25 psComplex **rows_complex; ///< pointers to psComplex data26 } rows; 27 struct psImage *parent; ///< parent, if a subimage28 int Nchildren; ///< number of subimages29 struct psImage *children; ///< children of this region; array of Nchildren pointers41 float **rows ///< Pointers to floating point data (default). 42 short **rows_s; ///< Pointers to short integer data. 43 int **rows_i; ///< Pointers to integer data. 44 long **rows_l ; ///< Pointers to long integer data. 45 unsigned short **rows_us; ///< Pointers to unsigned short integer data. 46 unsigned int **rows_ui; ///< Pointers to unsigned integer data. 47 unsigned long **rows_ul; ///< Pointers to unsigned long integer data. 48 float **rows_f ///< Pointers to floating point data. 49 double **rows_d ///< Pointers to double precision data. 50 complex float **rows_cf ///< Pointers to complex floating point data. 51 } rows; ///< Union for data types. 52 struct psImage *parent; ///< Parent, if a subimage. 53 int nChildren; ///< Number of subimages. 54 struct psImage *children; ///< Children of this region. 30 55 } 31 56 psImage; 32 57 33 /** Functions **************************************************************/ 34 /** \addtogroup AstroGroup Astronomy-Specific Utilities 35 * \{ 36 */ 37 38 /*** Image structure manipulation ***/ 39 40 /// Create an image of the specified size and type. 41 psImage * 42 psImageAlloc (int nx, ///< image width 43 int ny, ///< image height 44 psType type ///< image data type 45 ); 46 47 /// Create a subimage of the specified area. 48 psImage * 49 psImageSubset(psImage *out, ///< Subimage to return, or NULL 50 const psImage *image, ///< parent image 51 int nx, ///< subimage width (<= image.nx - x0) 52 int ny, ///< subimage width (<= image.ny - y0) 53 int x0, ///< subimage x-offset (0 <= x0 < nx) 54 int y0 ///< subimage y-offset (0 <= y0 < ny) 55 ); 56 57 /// Destroy the specified image (destroy children if they exist). 58 void 59 psImageFree(psImage *restrict image ///< free this image 60 ); 58 /*****************************************************************************/ 59 /* FUNCTION PROTOTYPES */ 60 /*****************************************************************************/ 61 62 63 /** Create an image of the specified size and type. 64 * 65 * Uses psLib memory allocation functions to create an image struct of the specified size and type. 66 * 67 * @return psImage*: Pointer to psImage. 68 * 69 */ 70 psImage *psImageAlloc( 71 int nx, ///< Image width. 72 int ny, ///< Image height. 73 psType type ///< Image data type. 74 ); 75 76 /** Create a subimage of the specified area. 77 * 78 * Uses psLib memory allocation functions to create an image based on a larger one. 79 * 80 * @return psImage*: Pointer to psImage. 81 * 82 */ 83 psImage *psImageSubset( 84 psImage *out, ///< Subimage to return, or NULL. 85 const psImage *image, ///< Parent image. 86 int nx, ///< Subimage width (<= image.nx - x0). 87 int ny, ///< Subimage width (<= image.ny - y0). 88 int x0, ///< Subimage x-offset (0 <= x0 < nx). 89 int y0 ///< Subimage y-offset (0 <= y0 < ny). 90 ); 91 92 /** Destroy the specified image. 93 * 94 * Uses psLib memory deallocation functions to free an image and any existing children. 95 * 96 * @return psImage*: Pointer to psImage. 97 * 98 */ 99 void psImageFree( 100 psImage *restrict image ///< free this image 101 ); 102 103 104 105 // DOXYGEN COMMENTING FORMAT NOT YET FULLY IMPLEMENTED BEYOND THIS POINT 106 107 61 108 62 109 /** Destroy the pixels of the specified image */ -
trunk/psLib/src/mathtypes/psImage.h
r597 r599 1 /** @file psImage.h 2 * 3 * @brief Contains basic image definitions and operations 4 * 5 * This file defines the basic type for an image struct and functions useful in manupulating images. 6 * 7 * @author Ross Harman, MHPCC 8 * 9 * @version $Revision: 1.2 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2004-05-07 02:56:52 $ 11 * 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii 13 */ 1 14 # ifndef PS_IMAGE_H 2 15 # define PS_IMAGE_H 3 16 4 /** \file psImage.h 5 * \brief Basic image definitions and operations. 6 * \ingroup AstroGroup 7 */ 8 9 /// basic image data structure. 17 #include <complex.h> 18 19 /******************************************************************************/ 20 /* DEFINE STATEMENTS */ 21 /******************************************************************************/ 22 23 // None 24 25 /******************************************************************************/ 26 /* TYPE DEFINITIONS */ 27 /******************************************************************************/ 28 29 /** Basic image data structure. 30 * 31 * Struct for maintaining image data of varying types. It also contains information about image size, parent 32 * images and children images. 33 * 34 */ 10 35 typedef struct psImage 11 36 { 12 psType type; ///< image data type and dimension13 int nx, ny; ///< size of image14 int x0, y0; ///< data region relative to parent37 psType type; ///< Image data type and dimension. 38 int nx, ny; ///< Size of image. 39 int x0, y0; ///< Data region relative to parent. 15 40 union { 16 psF32 **rows; ///< == rows_f3217 psS8 **rows_s8; ///< pointers to psS8 data18 psS16 **rows_s16; ///< pointers to psS16 data19 psS32 **rows_s32; ///< pointers to psS32 data20 psU8 **rows_u8; ///< pointers to psU8 data21 psU16 **rows_u16; ///< pointers to psU16 data22 psU32 **rows_u32; ///< pointers to psU32 data23 psF32 **rows_f32; ///< pointers to psF32 data24 psF64 **rows_f64; ///< pointers to psF64 data25 psComplex **rows_complex; ///< pointers to psComplex data26 } rows; 27 struct psImage *parent; ///< parent, if a subimage28 int Nchildren; ///< number of subimages29 struct psImage *children; ///< children of this region; array of Nchildren pointers41 float **rows ///< Pointers to floating point data (default). 42 short **rows_s; ///< Pointers to short integer data. 43 int **rows_i; ///< Pointers to integer data. 44 long **rows_l ; ///< Pointers to long integer data. 45 unsigned short **rows_us; ///< Pointers to unsigned short integer data. 46 unsigned int **rows_ui; ///< Pointers to unsigned integer data. 47 unsigned long **rows_ul; ///< Pointers to unsigned long integer data. 48 float **rows_f ///< Pointers to floating point data. 49 double **rows_d ///< Pointers to double precision data. 50 complex float **rows_cf ///< Pointers to complex floating point data. 51 } rows; ///< Union for data types. 52 struct psImage *parent; ///< Parent, if a subimage. 53 int nChildren; ///< Number of subimages. 54 struct psImage *children; ///< Children of this region. 30 55 } 31 56 psImage; 32 57 33 /** Functions **************************************************************/ 34 /** \addtogroup AstroGroup Astronomy-Specific Utilities 35 * \{ 36 */ 37 38 /*** Image structure manipulation ***/ 39 40 /// Create an image of the specified size and type. 41 psImage * 42 psImageAlloc (int nx, ///< image width 43 int ny, ///< image height 44 psType type ///< image data type 45 ); 46 47 /// Create a subimage of the specified area. 48 psImage * 49 psImageSubset(psImage *out, ///< Subimage to return, or NULL 50 const psImage *image, ///< parent image 51 int nx, ///< subimage width (<= image.nx - x0) 52 int ny, ///< subimage width (<= image.ny - y0) 53 int x0, ///< subimage x-offset (0 <= x0 < nx) 54 int y0 ///< subimage y-offset (0 <= y0 < ny) 55 ); 56 57 /// Destroy the specified image (destroy children if they exist). 58 void 59 psImageFree(psImage *restrict image ///< free this image 60 ); 58 /*****************************************************************************/ 59 /* FUNCTION PROTOTYPES */ 60 /*****************************************************************************/ 61 62 63 /** Create an image of the specified size and type. 64 * 65 * Uses psLib memory allocation functions to create an image struct of the specified size and type. 66 * 67 * @return psImage*: Pointer to psImage. 68 * 69 */ 70 psImage *psImageAlloc( 71 int nx, ///< Image width. 72 int ny, ///< Image height. 73 psType type ///< Image data type. 74 ); 75 76 /** Create a subimage of the specified area. 77 * 78 * Uses psLib memory allocation functions to create an image based on a larger one. 79 * 80 * @return psImage*: Pointer to psImage. 81 * 82 */ 83 psImage *psImageSubset( 84 psImage *out, ///< Subimage to return, or NULL. 85 const psImage *image, ///< Parent image. 86 int nx, ///< Subimage width (<= image.nx - x0). 87 int ny, ///< Subimage width (<= image.ny - y0). 88 int x0, ///< Subimage x-offset (0 <= x0 < nx). 89 int y0 ///< Subimage y-offset (0 <= y0 < ny). 90 ); 91 92 /** Destroy the specified image. 93 * 94 * Uses psLib memory deallocation functions to free an image and any existing children. 95 * 96 * @return psImage*: Pointer to psImage. 97 * 98 */ 99 void psImageFree( 100 psImage *restrict image ///< free this image 101 ); 102 103 104 105 // DOXYGEN COMMENTING FORMAT NOT YET FULLY IMPLEMENTED BEYOND THIS POINT 106 107 61 108 62 109 /** Destroy the pixels of the specified image */
Note:
See TracChangeset
for help on using the changeset viewer.
