|
Wavelet and Image class library
1.3.2
|
00001 /* 00002 * class ImageArray 00003 * 00004 * $Date$ 00005 * $Revision$ 00006 * 00007 */ 00008 00009 #ifndef IMAGE_ARRAY_HH__ 00010 #define IMAGE_ARRAY_HH__ 00011 00012 class ColumnVector; 00013 00023 template<class T> class 00024 ImageArray 00025 { 00026 public: 00027 00029 ImageArray (void); 00036 ImageArray (int rows, int cols); 00038 virtual ~ImageArray (void); 00039 00043 inline int rows (void) const { return m_ysize; } 00047 inline int cols (void) const { return m_xsize; } 00051 inline int size (void) const { return m_xysize; } 00059 inline T at (int y, int x) const { return m_ar[abs (y, x)]; } 00060 00066 virtual T at (int abs) const { return m_ar[abs]; } 00074 inline void to (int y, int x, T val) { m_ar[abs (y, x)] = val; } 00080 virtual void to (int abs, T val) { m_ar[abs] = val; } 00081 00089 virtual int abs (int y, int x) const { return m_rows[y] + x; } 00090 00098 T smax (int fromY = 0, int fromX = 0, int toY = -1, int toX = -1) const; 00106 T smin (int fromY = 0, int fromX = 0, int toY = -1, int toX = -1) const; 00114 T amax (int fromY = 0, int fromX = 0, int toY = -1, int toX = -1) const; 00122 T amin (int fromY = 0, int fromX = 0, int toY = -1, int toX = -1) const; 00131 T saverage (int fromY = 0, int fromX = 0, int toY = -1, int toX = -1) const; 00132 00141 T aaverage (int fromY = 0, int fromX = 0, int toY = -1, int toX = -1) const; 00142 00152 virtual void resize (int rows, int cols); 00161 virtual void import (int rows, int cols, T *array); 00165 virtual ImageArray<T> *clone (void) const; 00169 virtual void copy (ImageArray<T> &ia); 00173 inline void copy (ImageArray<T> *ia) { copy (*ia); } 00182 virtual bool epsilons (ImageArray<T> &ia, T epsilon) const; 00191 inline bool epsilons (ImageArray<T> *ia, T epsilon) const 00192 { return epsilons (*ia, epsilon); } 00198 inline bool equals (ImageArray<T> &ia) const { return epsilons (ia, (T)0); } 00199 00205 inline bool equals (ImageArray<T> *ia) const { return equals (*ia); } 00206 00212 inline T*& array (void) { return m_ar; } 00213 00214 protected: 00216 int m_xsize; 00218 int m_ysize; 00220 int m_xysize; 00222 T *m_ar; 00224 int *m_rows; 00227 virtual void updateRowsArray (void); 00228 00229 }; /* class ImageArray */ 00230 00231 #include "../ImageArray.cc" 00232 00235 #endif /* IMAGE_ARRAY_HH__ */ 00236
1.7.6.1