00001 // This is core/vil1/vil1_pyramid.h 00002 #ifndef vil1_pyramid_h_ 00003 #define vil1_pyramid_h_ 00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE 00005 #pragma interface 00006 #endif 00007 //: 00008 // \file 00009 // \author fsm 00010 00011 #include <vil1/vil1_image.h> 00012 #include <vcl_vector.h> 00013 00014 //: 00015 // vil1_pyramid is *not* an image. It is like an array of images, with 00016 // the 0th element as the given image and the ith element a subsampled 00017 // version of the (i-1)th element. The subsampled images are computed 00018 // on demand and cached for later use. 00019 struct vil1_pyramid 00020 { 00021 enum cache_strategy { 00022 none = 0, 00023 memory = 1, 00024 blocked = 2 // not implemented. don't try to use it. 00025 }; 00026 00027 vil1_pyramid(vil1_image const &, cache_strategy = memory); 00028 ~vil1_pyramid(); 00029 00030 unsigned size() const { return levels.size(); } 00031 vil1_image operator[](unsigned i); 00032 00033 private: 00034 cache_strategy cs; 00035 vcl_vector<vil1_image> levels; 00036 }; 00037 00038 #endif // vil1_pyramid_h_
1.5.1