86 lines
1.5 KiB
C++
86 lines
1.5 KiB
C++
#include "StdAfx.h"
|
|
#include "JpegBuffer.h"
|
|
#include "jpeglib.h"
|
|
#include "twain.h"
|
|
#include "filetools.h"
|
|
#include "PublicFunc.h"
|
|
|
|
using namespace std;
|
|
|
|
JpegBuffer::JpegBuffer(cv::Mat buffer, int color_type,int side,int mFilter)
|
|
{
|
|
this->m_buffer = buffer;
|
|
this->m_color_type=color_type;
|
|
this->m_side=side;
|
|
this->m_mFilter=mFilter;
|
|
}
|
|
|
|
JpegBuffer::JpegBuffer(std::vector<cv::Mat> mats, int color_type, int mFilter)
|
|
{
|
|
this->m_buffer = mats;
|
|
this->m_color_type = color_type;
|
|
this->m_mFilter = mFilter;
|
|
}
|
|
|
|
|
|
JpegBuffer::~JpegBuffer(void)
|
|
{
|
|
}
|
|
|
|
|
|
//unsigned char* JpegBuffer::getBuffer()
|
|
//{
|
|
// return m_buffer.data;
|
|
//}
|
|
|
|
//cv::Mat JpegBuffer::buffer()
|
|
//{
|
|
// return m_buffer;
|
|
//}
|
|
|
|
//int JpegBuffer::getSize()
|
|
//{
|
|
// return m_buffer.cols;
|
|
//}
|
|
|
|
|
|
//cv::Mat JpegBuffer::getMat( int pixType)
|
|
//{
|
|
// static int inddd = 0;
|
|
// JpegLib jl;
|
|
//
|
|
// cv::Mat image = jl.decode(m_buffer, pixType);
|
|
//
|
|
// return image.clone();
|
|
//}
|
|
|
|
std::vector<cv::Mat> JpegBuffer::getMats(int pixType)
|
|
{
|
|
|
|
std::vector<cv::Mat> rets;
|
|
JpegLib jl;
|
|
for (size_t i = 0; i < m_buffer.size(); i++)
|
|
{
|
|
#ifndef G200
|
|
cv::Mat mat = cv::imdecode(m_buffer[i], pixType == TJPF_BGR ? 1 : 0);
|
|
cv::Mat front = mat(cv::Rect(0, 0, mat.cols / 2, mat.rows));
|
|
cv::Mat back = mat(cv::Rect(mat.cols / 2, 0, mat.cols / 2, mat.rows));
|
|
return { front,back };
|
|
#else
|
|
rets.push_back(jl.decode(m_buffer[i], pixType).clone());
|
|
#endif
|
|
}
|
|
|
|
return rets;
|
|
}
|
|
|
|
int JpegBuffer::getMFilter()
|
|
{
|
|
return m_mFilter;
|
|
}
|
|
|
|
int JpegBuffer::getSide()
|
|
{
|
|
return m_side;
|
|
}
|