#include<opencv2/opencv.hpp> #include<iostream> #include <vector> #include "opencv2/imgcodecs/legacy/constants_c.h" int main(int argc, char** argv) { cv::Mat src(5, 4, CV_8UC3, cv::Scalar(10, 20, 30)); std::vector<unsigned char> vec; cv::imencode(".jpg", src, vec);//把Mat转换成vector //参数1:按什么图片格式编码 cv::waitKey(0); return 0; }
#include<opencv2/opencv.hpp> #include<iostream> #include <vector> #include "opencv2/imgcodecs/legacy/constants_c.h" int main(int argc, char** argv) { cv::Mat src(5, 4, CV_8UC3, cv::Scalar(10, 20, 30)); std::vector<unsigned char> vec; int quality = 50; //压缩比率0~100 std::vector<int> cp; //创建vector对象,用来存储质量压缩信息 cp.push_back(cv::IMWRITE_JPEG_QUALITY); //cv::IMWRITE_JPEG_QUALITY jpg格式 //其它格式:看 https://www.cnblogs.com/liming19680104/p/15388462.html cp.push_back(quality); cv::imencode(".jpg", src, vec,cp);//把Mat转换成vector //参数1:按什么图片格式编码 //参数2:Mat矩阵 //参数3:vector对象 //参数4:质量压缩信息[可选] std::cerr << vec.size() << std::endl; cv::waitKey(0); return 0; }