Changeset 2808 in Sophya for trunk/SophyaLib/NTools/dynccd.cc
- Timestamp:
- Jun 14, 2005, 1:25:05 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/NTools/dynccd.cc
r2615 r2808 11 11 #include "dynccd.h" 12 12 13 //++ 14 // Class DynCCD 15 // Lib Images++ 16 // include dynccd.h 17 // 18 // Cette classe permet la specification des parametres 19 // definissant la dynamique du CCD, et doit etre utilise 20 // pour le calcul des images de bruit. 21 // - TypNoise = 1 : 22 // Bruit = Sqrt( (RONoise/Gain)**2 + ValPix/Gain ) 23 // - TypNoise = 2 : 24 // Bruit = Sqrt( RefSFond**2 + (ValPix-RefFond)/Gain ) 25 // - TypNoise = 0 26 // Bruit = 1 (Constant pour tous les pixels) 27 // - TypNoise = 3 28 // Bruit = Sqrt(Abs(ValPix)) 29 // 30 // Les pixels hors dynamique sont marques (Bruit = 0) 31 // ( < MinADU ou > MaxADU) pour toutes valeurs de TypNoise. 32 // Gain est exprime en electron par ADU, RONoise en electron, 33 // Bruit, ValPix et RefFond en ADU. 34 //-- 13 /*! 14 \class SOPHYA::DynCCD 15 \ingroup NTools 16 17 Cette classe permet la specification des parametres 18 definissant la dynamique du CCD, et doit etre utilise 19 pour le calcul des images de bruit. 35 20 36 //++ 37 // Links Parents 38 // PPersist 39 //-- 40 //++ 41 // Links Autres 42 // RzImage 43 // Image<T> 44 //-- 45 //++ 46 // Titre Methodes 47 //-- 48 //++ 49 // DynCCD(int_4TypNoise=0, r_8 MinADU=-9.e19, r_8 MaxADU=9.e19, r_8 Gain=1., r_8 RONoise=0., r_8 RefFond=0., r_8 RefSFond=0.); 50 // Creation d'un objet DynCCD ("typ" determine la methode de calcul du bruit) 51 // |Test verbatim 52 // 53 // void Set(int_4TypNoise=0, r_8 MinADU=-9.e19, r_8 MaxADU=9.e19, r_8 Gain=1., r_8 RONoise=0., r_8 RefFond=0., r_8 RefSFond=0.); 54 // Modification des parametres de la dynamique 55 // void Print() 56 // r_8 Noise(r_8 pixel) const 57 // Renvoie la valeur du bruit pour "pixel" en ADU. 58 //-- 21 - TypNoise = 1 22 Bruit = Sqrt( (RONoise/Gain)**2 + ValPix/Gain ) 23 - TypNoise = 2 : 24 Bruit = Sqrt( RefSFond**2 + (ValPix-RefFond)/Gain ) 25 - TypNoise = 0 26 Bruit = 1 (Constant pour tous les pixels) 27 - TypNoise = 3 28 Bruit = Sqrt(Abs(ValPix)) 29 30 Les pixels hors dynamique sont marques (Bruit = 0) 31 ( < MinADU ou > MaxADU) pour toutes valeurs de TypNoise. 32 Gain est exprime en electron par ADU, RONoise en electron, 33 Bruit, ValPix et RefFond en ADU. 34 35 \sa SOPHYA::Image 36 */ 37 59 38 60 39 /* ............................................................ */ … … 63 42 64 43 /* --Methode-- */ 44 //! Creation d'un objet DynCCD ("typ" determine la methode de calcul du bruit) 65 45 DynCCD::DynCCD(int_4 typ, r_8 min, r_8 max, r_8 g, 66 46 r_8 ron, r_8 rf, r_8 rfs) … … 74 54 75 55 /* --Methode-- */ 56 //! Modification des parametres de la dynamique 76 57 void DynCCD::Set(int_4 typ, r_8 min, r_8 max, r_8 g, 77 58 r_8 ron, r_8 rf, r_8 rfs) … … 93 74 } 94 75 76 //! Renvoie la valeur du bruit pour "pixel" en ADU. 77 /*! 78 Cette fonction calcule la valeur du bruit pour pixel 79 - Si TypNoise = 1 : 80 Bruit = Sqrt( (RONoise/Gain)**2 + ValPix/Gain ) 81 - Si TypNoise = 2 : 82 Bruit = Sqrt( RefSFond**2 + (ValPix-RefFond)/Gain ) 83 - Si TypNoise = 0 84 Bruit = 1 (Constant pour tous les pixels) 85 - Si TypNoise = 3 86 Bruit = Sqrt(Abs(PixelADU)) 87 88 Les pixels hors dynamique sont marques (Bruit = 0) 89 ( < MinADU ou > MaxADU) pour tout valeur de TypNoise 90 */ 95 91 /* --Methode-- */ 96 92 r_8 DynCCD::Noise(r_8 pixel) const 97 98 /* Cette fonction calcule la valeur du bruit pour pixel */99 /* Si TypNoise = 1 : */100 /* Bruit = Sqrt( (RONoise/Gain)**2 + ValPix/Gain ) */101 /* Si TypNoise = 2 : */102 /* Bruit = Sqrt( RefSFond**2 + (ValPix-RefFond)/Gain ) */103 /* Si TypNoise = 0 */104 /* Bruit = 1 (Constant pour tous les pixels) */105 /* Si TypNoise = 3 */106 /* Bruit = Sqrt(Abs(PixelADU)) */107 /* Les pixels hors dynamique sont marques (Bruit = 0) */108 /* ( < MinADU ou > MaxADU) pour tout valeur de TypNoise */109 110 93 { 111 94 r_8 h,s,ronsq; … … 133 116 /* -------------------------------------------------------------- */ 134 117 135 //++136 // Module Images de bruit137 // Lib Images++138 // include dynccd.h139 //140 // Ces fonctions permettent le calcul d'image de bruit a partir d'une141 // image (RzImage ou Image<T>) et d'un objet DynCCD142 //--143 //++144 // Links Voir classes145 // DynCCD146 // RzImage147 // Image<T>148 //--149 //++150 // Titre Les fonctions151 //--152 153 //++154 // Function RzImage * NoiseImage(RzImage const *pim, DynCCD const * dynccd)155 // Construit et renvoie l'image du bruit pour l'image "*pim" (RzImage)156 // Function Image<T> * NoiseImage(Image<T> const * pim, DynCCD const * dynccd)157 // Meme fonctionalite pour une image typee (ImageU2, ImageR4, ...)158 // Function ImgAddNoise(Image<T>&, DynCCD const&)159 // Calcule l'image du bruit et le rajoute a l'image originale160 //--161 118 162 119 /* Nouvelle-Fonction */ 120 /*! 121 Construit et renvoie l'image du bruit pour l'image "*pim" 122 123 Creation et Calcul d'une image de bruit a partir de l'image 124 pim et de dynccd. Voir la methode DynCCD::Noise() pour la 125 description du calcul 126 */ 163 127 template <class T> 164 128 Image<T> NoiseImage(Image<T> const & pim, DynCCD const & dynccd) 165 166 /* Creation et Calcul d'une image de bruit a partir de l'image */167 /* pim et de dynccd. Voir la methode DynCCD::Noise() pour la */168 /* description du calcul */169 129 170 130 { … … 190 150 191 151 /* Nouvelle-Fonction */ 152 //! Calcule l'image du bruit et le rajoute a l'image originale 192 153 template <class T> 193 154 void ImgAddNoise(Image<T>& img, DynCCD const& dyn) 155 194 156 { 195 157 int_4 nPix = img.XSize() * img.YSize();
Note:
See TracChangeset
for help on using the changeset viewer.