opencv图像压缩与解压(imencode&imdecode)

问题

在工程应用中,通常有需要用网络传输图片的需求,考虑网络带宽的限制,无法直接将原始图片进行传输。

解决

使用opencv中的imencode与imdecode函数进行图像压缩与解压

imencode

Mat img;
int quality = 50; //压缩比率0~100
vector<uint8_t> imageData;
vector<int> compress_params;
compress_params.push_back(IMWRITE_JPEG_QUALITY);
compress_params.push_back(quality);
imencode(".jpg", frame, imageData, compress_params);

imdecode

vector<uint8_t> p_data = imageData;
Mat image = imdecode(p_data,CV_LOAD_IMAGE_COLOR);

包含头文件

#include<opencv2/opencv.hpp>
#include<opencv2/imgcodecs.hpp>
#include<opencv2/imgcodecs/legacy/constants_c.h> //出现CV_LOAD_IMAGE_COLOR未声明错误,通常是这个头文件未被包含

opencv图像压缩与解压(imencode&imdecode)

上一篇:ionic 运行到真机上报错 net::ERR_CONNECTION_REFUSED (http://localhost:8100/)


下一篇:CSS3 过渡