| [224] | 1 | // Utilisation des flots d'entree-sortie C++ | 
|---|
|  | 2 | #include <iostream.h> | 
|---|
|  | 3 | // Utilisation de la classe Image<T> | 
|---|
|  | 4 | #include "cimage.h" | 
|---|
|  | 5 | // Utilisation des generateurs aleatoires | 
|---|
|  | 6 | #include "nbrandom.h" | 
|---|
|  | 7 |  | 
|---|
|  | 8 |  | 
|---|
|  | 9 | // -------- Le programme principal --------- | 
|---|
|  | 10 |  | 
|---|
|  | 11 | main(int narg, char *arg[]) | 
|---|
|  | 12 | { | 
|---|
|  | 13 | int i,j; | 
|---|
|  | 14 |  | 
|---|
|  | 15 | // ----- ATTENTION ------- | 
|---|
|  | 16 | // Initialisation de Peida | 
|---|
|  | 17 | // A faire au debut de main() | 
|---|
|  | 18 | PeidaInit(); | 
|---|
|  | 19 |  | 
|---|
|  | 20 | cout << " ........ Debut de timg.cc ....... " << endl; | 
|---|
|  | 21 | // declaration et creation d'une image de type flottant 300x200 | 
|---|
|  | 22 | ImageR4  img(300, 200); | 
|---|
|  | 23 | // Remplissage de l'image Tirage aleatoire plat entre 1000-2000 | 
|---|
|  | 24 | for(i=0; i<300; i++) | 
|---|
|  | 25 | for(j=0; j<200; j++) img(i,j) =  frand01()*1000.+1000.; | 
|---|
|  | 26 | // Verification de la dynamique de l'image | 
|---|
|  | 27 | img.CheckDyn(); | 
|---|
|  | 28 | img.Print(); | 
|---|
|  | 29 | // On sauve l'image ds img.ppf (fichier  format PPersist) | 
|---|
|  | 30 | img.Write("img.ppf"); | 
|---|
|  | 31 |  | 
|---|
|  | 32 | // On rajoute du bruit a l'image (Gaussienne de sigma=3) | 
|---|
|  | 33 | for(i=0; i<300; i++) | 
|---|
|  | 34 | for(j=0; j<200; j++) img(i,j) += NorRand()*3. ; | 
|---|
|  | 35 |  | 
|---|
|  | 36 | // Verification de la dynamique de l'image | 
|---|
|  | 37 | img.CheckDyn(); | 
|---|
|  | 38 | img.Print(); | 
|---|
|  | 39 |  | 
|---|
|  | 40 | // On verifie la date de creation du fichier .ppf | 
|---|
|  | 41 | { | 
|---|
|  | 42 | string ppfname = "img.ppf"; | 
|---|
|  | 43 | PInPersist pin(ppfname, false); | 
|---|
|  | 44 | cout << "Fichier PPF: " << ppfname << " Version= " << pin.Version() | 
|---|
|  | 45 | << " Created: " << pin.CreationDate() << endl; | 
|---|
|  | 46 | } | 
|---|
|  | 47 | // On cree une nouvelle image | 
|---|
|  | 48 | ImageR4  img2; | 
|---|
|  | 49 | // On lit le contenu du fichier imgin.ppf | 
|---|
|  | 50 | img2.Read("img.ppf"); | 
|---|
|  | 51 | // On calcule la difference entre les images img et img2 | 
|---|
|  | 52 | //    Apres et avant ajout de bruit | 
|---|
|  | 53 | img -= img2; | 
|---|
|  | 54 |  | 
|---|
|  | 55 | // Verification de la dynamique de l'image soustraite | 
|---|
|  | 56 | img.CheckDyn(); | 
|---|
|  | 57 | img.Print(); | 
|---|
|  | 58 |  | 
|---|
|  | 59 | cout << " ========= Fin de timg.cc ======== " << endl; | 
|---|
|  | 60 | exit(0); | 
|---|
|  | 61 | } | 
|---|