cv::Rect m_select;
cv::Mat ROI;//定义一个mnat类,储存图像的相关信息
capture >> ROI//捕捉图像存储在那个类中
resize(ROI, ROI, Size(400, 250));//图像压缩压缩到宽400高250
m_select=Rect(0,70,400,170);//对图像进行裁剪,顺序是左上右底,截取四个点之内的图像
frame=ROI(m_select);//裁剪完之后传给下一个mat类
std::vector<uchar> data_encode;//定义一个容器
std::vector<int> quality;//在定义一个容器,用于图像编码压缩
quality.push_back(CV_IMWRITE_JPEG_QUALITY);
quality.push_back(12);//图像压缩到原来的12%
imencode(".jpg", frame, data_encode,quality);//进行编码
int nSize = data_encode.size();//显示编码之后的大小
for (int i = 0; i < nSize; i++)//把编码之后的编码复制到buffer中
	{
		buf[i] = data_encode[i];
		
	}


std::vector<uchar> decode;//定义一个容器进行解码
frame=imdecode(decode, CV_LOAD_IMAGE_COLOR);//进行解码存储在mat类中
resize(frame, dst, Size(), 1.5, 1.5);//对图像进行放大1.5倍
cv::imshshow("111", dst);//显示图像,窗口名为111

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐