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

Last change on this file since 998 was 837, checked in by ansari, 25 years ago

modifs cmv 7/4/00

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