#ifndef ICL_OPEN_CV_H #define ICL_OPEN_CV_H #include /** CvMat type struct CvMat{ int type; int step; int* refcount; uchar* ptr; int rows; int cols; }; */ namespace icl{ // TODO: everything ! // p = 7 // size is 1 template T* icl_allign(T *p, int n=4){ return reinterpret_cast( ((size_t)p+n-1) & -n); } template Img *deep_copy_to_img_base_t(const void *data, int w, int h){ Img * image = new Img(Size(w,h),1); // rows a 4-byte alligned const T* src = reinterpret_cast(data); T* dst = image->begin(0); for(int y=0;ytype)){ case CV_8S: WARNING_LOG("using icl8u to handle CV_8S data type!"); case CV_8U: return deep_copy_to_img_base_t(m.ptr,m.cols,m.rows); case CV_16U: WARNING_LOG("using icl16s to handle CV_16U data type!"); case CV_16S: return deep_copy_to_img_base_t(m.ptr,m.cols,m.rows); case CV_32S: return deep_copy_to_img_base_t(m.ptr,m.cols,m.rows); case CV_32F: return deep_copy_to_img_base_t(m.ptr,m.cols,m.rows); case CV_64F: return deep_copy_to_img_base_t(m.ptr,m.cols,m.rows); } return 0; } } #endif