#ifndef IMAGE_POOL_H_ANDROID_KDJFKJ #define IMAGE_POOL_H_ANDROID_KDJFKJ #include #include class image_pool { public: image_pool(); ~image_pool(); cv::Mat getImage(int i); cv::Mat getGrey(int i); cv::Mat getYUV(int i); int getCount() { return imagesmap.size(); } /** Adds a mat at the given index - will not do a deep copy, just images[i] = mat * */ void addImage(int i, cv::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, cv::Mat mat); void convertYUVtoColor(int i, cv::Mat& out); // int addYUV(uchar* buffer, int size, int width, int height, bool grey,int idx); // // void getBitmap(int * outintarray, int size, int idx); private: std::map imagesmap; std::map yuvImagesMap; }; void copyMatToBuffer(char* buffer, const cv::Mat& mat); void copyBufferToMat(cv::Mat& mat, const char* buffer); void RGB2BGR(const cv::Mat& in, cv::Mat& out); #endif