#ifndef IMAGE_POOL_H #define IMAGE_POOL_H #include #include #include using namespace cv; #ifdef __cplusplus extern "C" { #endif // //JNIEXPORT jobject JNICALL Java_com_opencv_jni_opencvJNI_getBitmapBuffer( // JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_); JNIEXPORT void JNICALL Java_com_opencv_jni_opencvJNI_addYUVtoPool (JNIEnv *, jclass, jlong, jobject, jbyteArray, jint, jint, jint, jboolean); #ifdef __cplusplus } #endif //bool yuv2mat2(char *data, int size, int width, int height, bool grey, Mat& mat); class image_pool { std::map > imagesmap; std::map > yuvImagesMap; //uchar * mbuffer; //int length; public: image_pool(); ~image_pool(); cv::Ptr getImage(int i); void getGrey(int i, Mat & grey); cv::Ptr getYUV(int i); int getCount(){ return imagesmap.size(); } void addImage(int i, Ptr< Mat> mat); /** this function stores the given matrix in the the yuvImagesMap. Also, * after this call getGrey will work, as the grey image is just the top * half of the YUV mat. * * \param i index to store yuv image at * \param mat the yuv matrix to store */ void addYUVMat(int i, Ptr< Mat> mat); int addYUV(uchar* buffer, int size, int width, int height, bool grey,int idx); void getBitmap(int * outintarray, int size, int idx); }; #endif