huago-corrcet_tools/HuaGoCorrect/ImageMatQueue.h

63 lines
1.3 KiB
C
Raw Normal View History

2020-08-31 08:08:50 +00:00
#pragma once
#include <thread>
#include <mutex>
#include <opencv2\opencv.hpp>
#include "JpegBuffer.h"
#include "BlockingQueue.h"
#include "PublicFunc.h"
#include "ImageApplyHeaders.h"
class ImageMatQueue
{
public:
ImageMatQueue(void);
virtual ~ImageMatQueue(void);
void pushMat(JpegBuffer& data);
void UpdateSaveConfig(bool saveOrigin, bool saveFixedOrigin);
cv::Mat popMat(int num);
cv::Mat popMat();
bool empty();
bool valid();
void clear();
void run();
int getMatSum();
bool b_save_origin;
bool b_save_fixed_origin;
volatile BOOL duplexFlag;
void SetFilePath(CString csFilePath)
{
csPath = csFilePath;
}
void ImageMatQueue::setduplexflag(BOOL value)
{
duplexFlag = value;
}
CString GetFilePath()
{
return csPath;
}
void ImageMatQueue::setlist(std::vector<std::shared_ptr<CImageApply>> list)
{
m_iaList = list;
}
public:
int pixType;
void setmultioutputR(bool canoutput=false);
void SetDevModel(int dev=-1);
std::vector<std::shared_ptr<CImageApply>> m_iaList;
CString csPath;
private:
void proc();
cv::Mat _popMat(int num);
void saveimg(std::string csImage,cv::Mat &mat);
BlockingQueue<cv::Mat> m_images; //!< <20>Ѵ<EFBFBD><D1B4><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BlockingQueue<JpegBuffer> m_pImages;
std::thread m_threadProc;
volatile bool bRun;
bool can_multi_outputR;
int DevModel;
};