rk3399_arm_lvds/imgproc/imageencode.cpp

52 lines
1.3 KiB
C++
Raw Permalink Normal View History

2024-03-05 03:46:18 +00:00
#include "imageencode.h"
#include "memoryex.h"
#include "opencv2/opencv.hpp"
#include "StopWatch.h"
BmpImageEncode::~BmpImageEncode()
{
}
MemoryPtr BmpImageEncode::encode(cv::Mat &image)
{
VectorMemroyPtr mem = VectorMemroyPtr(new VectorMemroy());
// StopWatch sw;
cv::imencode(".bmp", image, mem->buf());
// printf("encode time = %0.2f \n", sw.elapsed_ms());
return mem;
}
JpegImageEncode::JpegImageEncode(bool bwimg)
{
if (!bwimg)
{
compression_params.push_back(cv::IMWRITE_JPEG_QUALITY);
compression_params.push_back(100);
}
else
{
compression_params.push_back(CV_IMWRITE_PNG_STRATEGY);
compression_params.push_back(cv::IMWRITE_PNG_STRATEGY_FIXED);
}
m_bwimg = bwimg;
}
JpegImageEncode::~JpegImageEncode()
{
}
MemoryPtr JpegImageEncode::encode(cv::Mat &image)
{
VectorMemroyPtr mem = VectorMemroyPtr(new VectorMemroy());
// StopWatch sw;
cv::imencode(m_bwimg ? ".png" : ".jpg", image, mem->buf(), compression_params);
// printf("!!!!!!!!!!encode time = %0.2f \n", sw.elapsed_ms());
2024-03-05 03:46:18 +00:00
return mem;
}
MemoryPtr buff2mem(void *data, int size)
{
auto mem = std::shared_ptr<VectorMemroy>(new VectorMemroy());
mem->buf().resize(size);
// memcpy(mem->buf().data(), data, size);
return mem;
}