42#ifndef _ncvpyramid_hpp_
43#define _ncvpyramid_hpp_
52class NCV_EXPORTS NCVMatrixStack
55 NCVMatrixStack() {this->_arr.clear();}
58 const Ncv32u nElem = this->_arr.size();
59 for (Ncv32u i=0; i<nElem; i++)
64 void push_back(NCVMatrix<T> *elem) {this->_arr.push_back(std::tr1::shared_ptr< NCVMatrix<T> >(elem));}
65 void pop_back() {this->_arr.pop_back();}
66 NCVMatrix<T> * operator [] (
int i)
const {
return this->_arr[i].get();}
68 std::vector< std::tr1::shared_ptr< NCVMatrix<T> > > _arr;
73class NCV_EXPORTS NCVImagePyramid
77 NCVImagePyramid(
const NCVMatrix<T> &img,
79 INCVMemAllocator &alloc,
80 cudaStream_t cuStream);
82 NcvBool isInitialized()
const;
83 NCVStatus getLayer(NCVMatrix<T> &outImg,
86 cudaStream_t cuStream)
const;
90 NcvBool _isInitialized;
91 const NCVMatrix<T> *layer0;
92 NCVMatrixStack<T> pyramid;