opencv imdecode和imencode用法
Posted haiyang21
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv imdecode和imencode用法相关的知识,希望对你有一定的参考价值。
主要是对内存数据自动编解码
string fname = "D:/image.jpg"; //! 以二进制流方式读取图片到内存 FILE* pFile = fopen(fname.c_str(), "rb"); fseek(pFile, 0, SEEK_END); long lSize = ftell(pFile); rewind(pFile); char* pData = new char[lSize]; fread(pData, sizeof(char), lSize, pFile); fclose(pFile);
//! 解码内存数据,变成cv::Mat数据 cv::Mat img_decode; vector<uchar> data; for (int i = 0; i < lSize; ++i){ data.push_back(pData[i]); } img_decode = cv::imdecode(data, CV_LOAD_IMAGE_COLOR); cv::flip(img_decode, img_decode, -1); img_decode.channels();
//! 将cv::Mat数据编码成数据流 vector<unsigned char> img_encode; cv::imencode(".jpg", img_decode, img_encode); unsigned char *encode_data = new unsigned char[lSize]; for (int i = 0; i<lSize; i++){ encode_data[i] = img_encode[i]; }
以上是关于opencv imdecode和imencode用法的主要内容,如果未能解决你的问题,请参考以下文章