156 lines
4.4 KiB
OpenEdge ABL
156 lines
4.4 KiB
OpenEdge ABL
|
%typemap(javaimports) Mat "
|
||
|
/** Wrapper for the OpenCV Mat object. Good for passing around as a pointer to a Mat.
|
||
|
*/"
|
||
|
|
||
|
%typemap(javaimports) Size "
|
||
|
/** Wrapper for the OpenCV Size object. Good for setting dimensions of cv::Mat...
|
||
|
*/"
|
||
|
|
||
|
|
||
|
class Size{
|
||
|
public:
|
||
|
Size();
|
||
|
Size(int width,int height);
|
||
|
~Size();
|
||
|
int width;
|
||
|
int height;
|
||
|
};
|
||
|
|
||
|
#define CV_CN_MAX 512
|
||
|
#define CV_CN_SHIFT 3
|
||
|
#define CV_DEPTH_MAX (1 << CV_CN_SHIFT)
|
||
|
|
||
|
#define CV_8U 0
|
||
|
#define CV_8S 1
|
||
|
#define CV_16U 2
|
||
|
#define CV_16S 3
|
||
|
#define CV_32S 4
|
||
|
#define CV_32F 5
|
||
|
#define CV_64F 6
|
||
|
#define CV_USRTYPE1 7
|
||
|
|
||
|
#define CV_MAT_DEPTH_MASK (CV_DEPTH_MAX - 1)
|
||
|
#define CV_MAT_DEPTH(flags) ((flags) & CV_MAT_DEPTH_MASK)
|
||
|
|
||
|
#define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT))
|
||
|
#define CV_MAKE_TYPE CV_MAKETYPE
|
||
|
|
||
|
#define CV_8UC1 CV_MAKETYPE(CV_8U,1)
|
||
|
#define CV_8UC2 CV_MAKETYPE(CV_8U,2)
|
||
|
#define CV_8UC3 CV_MAKETYPE(CV_8U,3)
|
||
|
#define CV_8UC4 CV_MAKETYPE(CV_8U,4)
|
||
|
#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n))
|
||
|
|
||
|
#define CV_8SC1 CV_MAKETYPE(CV_8S,1)
|
||
|
#define CV_8SC2 CV_MAKETYPE(CV_8S,2)
|
||
|
#define CV_8SC3 CV_MAKETYPE(CV_8S,3)
|
||
|
#define CV_8SC4 CV_MAKETYPE(CV_8S,4)
|
||
|
#define CV_8SC(n) CV_MAKETYPE(CV_8S,(n))
|
||
|
|
||
|
#define CV_16UC1 CV_MAKETYPE(CV_16U,1)
|
||
|
#define CV_16UC2 CV_MAKETYPE(CV_16U,2)
|
||
|
#define CV_16UC3 CV_MAKETYPE(CV_16U,3)
|
||
|
#define CV_16UC4 CV_MAKETYPE(CV_16U,4)
|
||
|
#define CV_16UC(n) CV_MAKETYPE(CV_16U,(n))
|
||
|
|
||
|
#define CV_16SC1 CV_MAKETYPE(CV_16S,1)
|
||
|
#define CV_16SC2 CV_MAKETYPE(CV_16S,2)
|
||
|
#define CV_16SC3 CV_MAKETYPE(CV_16S,3)
|
||
|
#define CV_16SC4 CV_MAKETYPE(CV_16S,4)
|
||
|
#define CV_16SC(n) CV_MAKETYPE(CV_16S,(n))
|
||
|
|
||
|
#define CV_32SC1 CV_MAKETYPE(CV_32S,1)
|
||
|
#define CV_32SC2 CV_MAKETYPE(CV_32S,2)
|
||
|
#define CV_32SC3 CV_MAKETYPE(CV_32S,3)
|
||
|
#define CV_32SC4 CV_MAKETYPE(CV_32S,4)
|
||
|
#define CV_32SC(n) CV_MAKETYPE(CV_32S,(n))
|
||
|
|
||
|
#define CV_32FC1 CV_MAKETYPE(CV_32F,1)
|
||
|
#define CV_32FC2 CV_MAKETYPE(CV_32F,2)
|
||
|
#define CV_32FC3 CV_MAKETYPE(CV_32F,3)
|
||
|
#define CV_32FC4 CV_MAKETYPE(CV_32F,4)
|
||
|
#define CV_32FC(n) CV_MAKETYPE(CV_32F,(n))
|
||
|
|
||
|
#define CV_64FC1 CV_MAKETYPE(CV_64F,1)
|
||
|
#define CV_64FC2 CV_MAKETYPE(CV_64F,2)
|
||
|
#define CV_64FC3 CV_MAKETYPE(CV_64F,3)
|
||
|
#define CV_64FC4 CV_MAKETYPE(CV_64F,4)
|
||
|
#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n))
|
||
|
|
||
|
#define CV_AUTO_STEP 0x7fffffff
|
||
|
#define CV_WHOLE_ARR cvSlice( 0, 0x3fffffff )
|
||
|
|
||
|
#define CV_MAT_CN_MASK ((CV_CN_MAX - 1) << CV_CN_SHIFT)
|
||
|
#define CV_MAT_CN(flags) ((((flags) & CV_MAT_CN_MASK) >> CV_CN_SHIFT) + 1)
|
||
|
#define CV_MAT_TYPE_MASK (CV_DEPTH_MAX*CV_CN_MAX - 1)
|
||
|
#define CV_MAT_TYPE(flags) ((flags) & CV_MAT_TYPE_MASK)
|
||
|
#define CV_MAT_CONT_FLAG_SHIFT 14
|
||
|
#define CV_MAT_CONT_FLAG (1 << CV_MAT_CONT_FLAG_SHIFT)
|
||
|
#define CV_IS_MAT_CONT(flags) ((flags) & CV_MAT_CONT_FLAG)
|
||
|
#define CV_IS_CONT_MAT CV_IS_MAT_CONT
|
||
|
#define CV_SUBMAT_FLAG_SHIFT 15
|
||
|
#define CV_SUBMAT_FLAG (1 << CV_SUBMAT_FLAG_SHIFT)
|
||
|
#define CV_IS_SUBMAT(flags) ((flags) & CV_MAT_SUBMAT_FLAG)
|
||
|
|
||
|
#define CV_MAGIC_MASK 0xFFFF0000
|
||
|
#define CV_MAT_MAGIC_VAL 0x42420000
|
||
|
#define CV_TYPE_NAME_MAT "opencv-matrix"
|
||
|
|
||
|
class Mat {
|
||
|
public:
|
||
|
Mat();
|
||
|
~Mat();
|
||
|
void create(Size size, int type);
|
||
|
int channels() const;
|
||
|
%immutable;
|
||
|
int rows;
|
||
|
int cols;
|
||
|
};
|
||
|
|
||
|
template<class _Tp> class Ptr
|
||
|
{
|
||
|
public:
|
||
|
//! empty constructor
|
||
|
Ptr();
|
||
|
//! take ownership of the pointer. The associated reference counter is allocated and set to 1
|
||
|
Ptr(_Tp* _obj);
|
||
|
//! calls release()
|
||
|
~Ptr();
|
||
|
//! copy constructor. Copies the members and calls addref()
|
||
|
Ptr(const Ptr& ptr);
|
||
|
//! copy operator. Calls ptr.addref() and release() before copying the members
|
||
|
// Ptr& operator = (const Ptr& ptr);
|
||
|
//! increments the reference counter
|
||
|
void addref();
|
||
|
//! decrements the reference counter. If it reaches 0, delete_obj() is called
|
||
|
void release();
|
||
|
//! deletes the object. Override if needed
|
||
|
void delete_obj();
|
||
|
//! returns true iff obj==NULL
|
||
|
bool empty() const;
|
||
|
|
||
|
|
||
|
//! helper operators making "Ptr<T> ptr" use very similar to "T* ptr".
|
||
|
_Tp* operator -> ();
|
||
|
// const _Tp* operator -> () const;
|
||
|
|
||
|
// operator _Tp* ();
|
||
|
// operator const _Tp*() const;
|
||
|
|
||
|
protected:
|
||
|
_Tp* obj; //< the object pointer.
|
||
|
int* refcount; //< the associated reference counter
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
%template(PtrMat) Ptr<Mat>;
|
||
|
|
||
|
void imwrite(const char* image_name, const Mat& image);
|
||
|
Mat imread(const char* image_name);
|
||
|
|
||
|
%include "buffers.i"
|
||
|
%apply char* BUFF {const char* buffer}
|
||
|
%apply char* BUFF {char* buffer}
|
||
|
void copyMatToBuffer(char* buffer, const Mat& mat);
|
||
|
void copyBufferToMat(Mat& mat, const char* buffer);
|