FEDRA emulsion software from the OPERA Collaboration
EdbImage.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbImage
2 #define ROOT_EdbImage
3 
5 // //
6 // EdbImage //
7 // //
8 // CCD Image in bytemap format r //
9 // (2x3) : c 012 012 //
10 // convention about rows&columns: 1 345 //
11 // //
12 // //
14 
15 #include "TObject.h"
16 #include "TArrayC.h"
17 #include "TArrayD.h"
18 
19 class TH2F;
20 class TH1F;
21 
22 //______________________________________________________________________________
23 class EdbImage : public TObject {
24 
25 private:
26 
27  Int_t eColumns; // number of columns of the matrix (1 row length)
28  Int_t eRows; // number of rows of the matrix
29 
30  Int_t eColors; // maximal height of pixel (normally 256)
31 
32  TArrayC *eBuffer; // body of the image buffer
33  Int_t eBytes; // number of significative bytes in the buffer
34 
35 public:
37  EdbImage( const char *file, const char *format="PGM" );
38  EdbImage( int columns, int rows, const char *image, int col=256 );
39  virtual ~EdbImage();
40 
41 
42  virtual void Set0();
43  virtual void Print( Option_t *opt="" ) const;
44 
45  void AdoptImage(int columns, int rows, char *image, int col=256);
46 
47  void SetColors(int col) {eColors=col;}
48  char *GetBuffer() const { return eBuffer->GetArray(); }
49  Int_t FillBufferDouble(TArrayD &image) const;
50  int Pixel(int c, int r) const
51  { if(r<0) return 0; if(r>eRows) return 0;
52  if(c<0) return 0; if(c>eColumns) return 0;
53  return Pixel(eColumns*r + c); }
54  int Pixel(int ipix) const
55  { return (int)(((unsigned char*)(eBuffer->GetArray()))[ipix]); }
56  TH2F *GetHist2(int flip=0) const;
57  TH1F *GetHist1() const;
58 
59  Int_t Width() const {return eColumns;}
60  Int_t Height() const {return eRows;}
61  Int_t LoadPGM( const char *file );
62  Int_t LoadRAW( const char *file );
63  Int_t LoadBMP( const char *file );
64 
65  Int_t DumpPGM( const char *file );
66 
67  ClassDef(EdbImage,2) // CCD Image in bytemap format
68 };
69 
70 #endif /* ROOT_EdbImage */
71 
Definition: EdbImage.h:23
Int_t LoadBMP(const char *file)
Definition: EdbImage.cxx:307
Int_t Height() const
Definition: EdbImage.h:60
virtual ~EdbImage()
Definition: EdbImage.cxx:47
char * GetBuffer() const
Definition: EdbImage.h:48
TArrayC * eBuffer
Definition: EdbImage.h:32
void SetColors(int col)
Definition: EdbImage.h:47
Int_t Width() const
Definition: EdbImage.h:59
virtual void Print(Option_t *opt="") const
Definition: EdbImage.cxx:133
TH2F * GetHist2(int flip=0) const
Definition: EdbImage.cxx:157
Int_t FillBufferDouble(TArrayD &image) const
Definition: EdbImage.cxx:123
TH1F * GetHist1() const
Definition: EdbImage.cxx:139
virtual void Set0()
Definition: EdbImage.cxx:80
Int_t eBytes
Definition: EdbImage.h:33
Int_t eColors
Definition: EdbImage.h:30
void AdoptImage(int columns, int rows, char *image, int col=256)
Definition: EdbImage.cxx:112
int Pixel(int ipix) const
Definition: EdbImage.h:54
Int_t eColumns
Definition: EdbImage.h:27
Int_t eRows
Definition: EdbImage.h:28
int Pixel(int c, int r) const
Definition: EdbImage.h:50
Int_t LoadRAW(const char *file)
Definition: EdbImage.cxx:181
Int_t DumpPGM(const char *file)
Definition: EdbImage.cxx:281
Int_t LoadPGM(const char *file)
Definition: EdbImage.cxx:216
const char * opt
Definition: mc2raw.cxx:42
void r(int rid=2)
Definition: test.C:201
TFile * file
Definition: write_pvr.C:3