source: Sophya/trunk/SophyaProg/Tests/timg.cc@ 298

Last change on this file since 298 was 298, checked in by ansari, 26 years ago

Test typeid - Reza 15/05/99

File size: 3.3 KB
Line 
1// Utilisation des flots d'entree-sortie C++
2#include <iostream.h>
3// Utilisation de la classe Image<T>
4#include "outilsinit.h"
5#include "cimage.h"
6// Utilisation des generateurs aleatoires
7#include "nbrandom.h"
8
9// Test des NDataBlock
10#include "ndatablock.h"
11#include <complex>
12
13
14// -------- Le programme principal ---------
15
16main(int narg, char *arg[])
17{
18int i,j;
19
20// ----- ATTENTION -------
21// Initialisation de Peida
22// A faire au debut de main()
23PeidaInit();
24
25cout << " ........ Debut de timg.cc ....... " << endl;
26// declaration et creation d'une image de type flottant 300x200
27ImageR4 img(300, 200);
28ImageR4 imgo(300, 200);
29// Remplissage de l'image Tirage aleatoire plat entre 1000-2000
30for(i=0; i<300; i++)
31 for(j=0; j<200; j++) img(i,j) = imgo(i,j) = frand01()*1000.+1000.;
32// Verification de la dynamique de l'image
33img.CheckDyn();
34img.Print();
35// On sauve l'image ds img.ppf (fichier format PPersist)
36img.Write("img.ppf");
37
38// On rajoute du bruit a l'image (Gaussienne de sigma=3)
39for(i=0; i<300; i++)
40 for(j=0; j<200; j++) img(i,j) += NorRand()*3. ;
41
42// Verification de la dynamique de l'image
43img.CheckDyn();
44img.Print();
45
46// On verifie la date de creation du fichier .ppf
47 {
48 string ppfname = "img.ppf";
49 PInPersist pin(ppfname, false);
50 cout << "Fichier PPF: " << ppfname << " Version= " << pin.Version()
51 << " Created: " << pin.CreationDate() << endl;
52 }
53// On cree une nouvelle image
54ImageR4 img2;
55// On lit le contenu du fichier imgin.ppf
56img2.Read("img.ppf");
57// On calcule la difference entre les images img et img2
58// Avant ajout de bruit
59cout << "\n imgo(sansbruit) - img2 (fromfile) == 0 ? " << endl;
60imgo -= img2;
61// Verification de la dynamique de l'image soustraite
62imgo.CheckDyn();
63imgo.Print();
64
65// Apres ajout de bruit
66cout << " img(avecbruit) - img2 (fromfile) == Noise, sigma=1 ? " << endl;
67img -= img2;
68// Verification de la dynamique de l'image soustraite
69img.CheckDyn();
70img.Print();
71
72// ---- Test des NDataBlock
73cout << "\n ----------> Test des NDataBlock <r_8>" << endl;
74NDataBlock<r_8> db(20);
75for(i=0; i<20; i++) db(i) = i*5.;
76cout << " DataBlock<r_8> i*5 : (db)" << endl;
77cout << db << endl;
78NDataBlock<r_8> db2(db,false);
79cout << " DataBlock<r_8> (db2=db) - db" << endl;
80cout << db2-db << endl;
81
82FIO_NDataBlock<r_8> fdb(db);
83fdb.Write("db_r8.ppf");
84cout << " DataBlock<r_8> db -> File db_r8.ppf" << endl;
85FIO_NDataBlock<r_8> fdb2("db_r8.ppf");
86cout << " DataBlock<r_8> Frome file(db_r8.ppf) - db" << endl;
87cout << (NDataBlock<r_8>)fdb2-db << endl;
88
89cout << "\n\n ----------> Test des NDataBlock <complex<double>>" << endl;
90NDataBlock< complex<double> > zb(20);
91for(i=0; i<20; i++) {complex<double> z(i*10., 0.1*i); zb(i) = z; }
92cout << " DataBlock<complex<double>> (zb) = " << endl;
93cout << zb << endl;
94FIO_NDataBlock< complex<double> > fzb(zb);
95fzb.Write("zb_z8.ppf");
96FIO_NDataBlock< complex<double> > fzb2("zb_z8.ppf");
97cout << " DataBlock<complex<double>> Frome file(zb_z8.ppf) - db" << endl;
98cout << (NDataBlock< complex<double> >)(fzb2) ;
99
100cout << "\n -------> Test de typeinfo : " << endl;
101string st;
102ImageR4 ir;
103ImageU2* irp;
104
105st = typeid(NDataBlock<r_8>).name();
106cout << "typeid(NDataBlock<r_8>).name() = " << st << endl;
107st = typeid(ir).name();
108cout << "typeid(ir).name() - " << st << endl;
109st = typeid(irp).name();
110cout << "typeid(irp).name() - " << st << endl;
111cout << "\n ========= Fin de timg.cc ======== " << endl;
112exit(0);
113}
Note: See TracBrowser for help on using the repository browser.