资源简介
对图像进行压缩编码,并写入内存,然后从内存中读出并显示

代码片段和文件信息
// JPEGDecodeEncode.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include
#include
#include
#include
using namespace std;
using namespace cv;
double getPSNR(Mat& src1 Mat& src2 int bb=0);
int main(int argc char** argv)
{
Mat src = imread(“lena.png“);
cout<<“origin image size: “< cout<<“height: “< cout<<“height*width*depth: “< //(1) jpeg compression
vector buff;//buffer for coding
vector param = vector(2);
param[0]=CV_IMWRITE_JPEG_QUALITY;
param[1]=95;//default(95) 0-100
imencode(“.jpg“srcbuffparam);
cout<<“coded file size(jpg): “< Mat jpegimage = imdecode(Mat(buff)CV_LOAD_IMAGE_COLOR);
//(2) png compression
param[0]=CV_IMWRITE_PNG_COMPRESSION;
param[1]=3;//default(3) 0-9.
imencode(“.png“srcbuffparam);
cout<<“coded file size(png): “< Mat pngimage = imdecode(Mat(buff)CV_LOAD_IMAGE_COLOR);
//(3) intaractive jpeg compression
char name[64];
namedWindow(“jpg“);
int q=95;
createTrackbar(“quality““jpg“&q100);
int key = 0;
while(key!=‘q‘)
{
param[0]=CV_IMWRITE_JPEG_QUALITY;
param[1]=q;
imencode(“.jpg“srcbuffparam);
Mat show = imdecode(Mat(buff)CV_LOAD_IMAGE_COLOR);
double psnr = getPSNR(srcshow);//get PSNR
double bpp = 8.0*buff.size()/(show.size().area());//bit/pixe;
sprintf(name“quality:%03d %.1fdB %.2fbpp“qpsnrbpp);
putText(shownamePoint(1550) FONT_HERSHEY_SIMPLEX1CV_RGB(255255255)2);
imshow(“jpg“show);
key = waitKey(33);
if(key ==‘s‘)
{
//(4) data writing
sprintf(name“q%03d_%.2fbpp.png“qbpp);
imwrite(nameshow);
sprintf(name“q%03d_%.2fbpp.jpg“qbpp);
param[0]=CV_IMWRITE_JPEG_QUALITY;
param[1]=q;
imwrite(namesrcparam);;
}
}
}
double getPSNR(Mat& src1 Mat& src2 int bb)
{
int ij;
double ssemsepsnr;
sse = 0.0;
Mat s1s2;
cvtColor(src1s1CV_BGR2GRAY);
cvtColor(src2s2CV_BGR2GRAY);
int count=0;
for(j=bb;j {
uchar* d=s1.ptr(j);
uchar* s=s2.ptr(j);
for(i=bb;i {
sse += ((d[i] - s[i])*(d[i] - s[i]));
count++;
}
}
if(sse == 0.0 || count==0)
{
return 0;
}
else
{
mse =sse /(double)(count);
psnr = 10.0*log10((255*255)/mse);
return psnr;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-07-09 00:12 JPEGDecodeEncode\
目录 0 2014-07-08 22:55 JPEGDecodeEncode\Debug\
文件 80896 2014-07-08 22:56 JPEGDecodeEncode\Debug\JPEGDecodeEncode.exe
文件 624092 2014-07-08 22:56 JPEGDecodeEncode\Debug\JPEGDecodeEncode.ilk
文件 1682432 2014-07-08 22:56 JPEGDecodeEncode\Debug\JPEGDecodeEncode.pdb
目录 0 2014-07-08 22:07 JPEGDecodeEncode\ipch\
目录 0 2014-07-08 22:07 JPEGDecodeEncode\ipch\jpegdecodeencode-7e3800ee\
文件 2359296 2014-07-08 22:07 JPEGDecodeEncode\ipch\jpegdecodeencode-7e3800ee\jpegdecodeencode-c9ebd184.ipch
目录 0 2014-07-08 22:49 JPEGDecodeEncode\JPEGDecodeEncode\
文件 15683584 2014-07-09 00:12 JPEGDecodeEncode\JPEGDecodeEncode.sdf
文件 915 2014-07-08 22:07 JPEGDecodeEncode\JPEGDecodeEncode.sln
文件 11264 2014-07-09 00:12 JPEGDecodeEncode\JPEGDecodeEncode.suo
目录 0 2014-07-08 22:56 JPEGDecodeEncode\JPEGDecodeEncode\Debug\
文件 1610 2014-07-08 22:56 JPEGDecodeEncode\JPEGDecodeEncode\Debug\cl.command.1.tlog
文件 21304 2014-07-08 22:56 JPEGDecodeEncode\JPEGDecodeEncode\Debug\CL.read.1.tlog
文件 990 2014-07-08 22:56 JPEGDecodeEncode\JPEGDecodeEncode\Debug\CL.write.1.tlog
文件 406 2014-07-08 22:49 JPEGDecodeEncode\JPEGDecodeEncode\Debug\JPEGDecodeEncode.exe.em
文件 472 2014-07-08 22:49 JPEGDecodeEncode\JPEGDecodeEncode\Debug\JPEGDecodeEncode.exe.em
文件 381 2014-07-08 22:56 JPEGDecodeEncode\JPEGDecodeEncode\Debug\JPEGDecodeEncode.exe.intermediate.manifest
文件 60 2014-07-08 22:56 JPEGDecodeEncode\JPEGDecodeEncode\Debug\JPEGDecodeEncode.lastbuildstate
文件 4343 2014-07-08 22:56 JPEGDecodeEncode\JPEGDecodeEncode\Debug\JPEGDecodeEncode.log
文件 315596 2014-07-08 22:56 JPEGDecodeEncode\JPEGDecodeEncode\Debug\JPEGDecodeEncode.obj
文件 1179648 2014-07-08 22:49 JPEGDecodeEncode\JPEGDecodeEncode\Debug\JPEGDecodeEncode.pch
文件 707 2014-07-08 22:49 JPEGDecodeEncode\JPEGDecodeEncode\Debug\JPEGDecodeEncode.vcxprojResolveAssemblyReference.cache
文件 0 2014-07-08 22:49 JPEGDecodeEncode\JPEGDecodeEncode\Debug\JPEGDecodeEncode.write.1.tlog
文件 222 2014-07-08 22:49 JPEGDecodeEncode\JPEGDecodeEncode\Debug\JPEGDecodeEncode_manifest.rc
文件 2 2014-07-08 22:56 JPEGDecodeEncode\JPEGDecodeEncode\Debug\li
文件 2 2014-07-08 22:56 JPEGDecodeEncode\JPEGDecodeEncode\Debug\li
文件 2 2014-07-08 22:56 JPEGDecodeEncode\JPEGDecodeEncode\Debug\li
文件 2 2014-07-08 22:56 JPEGDecodeEncode\JPEGDecodeEncode\Debug\li
文件 2 2014-07-08 22:56 JPEGDecodeEncode\JPEGDecodeEncode\Debug\li
............此处省略26个文件信息
相关资源
- 一种红外遥控编解码仿真
- 曼彻斯特编解码_同步QuartusII工程
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- QT,JPEG解码源代码(已完成)
- vc URL编解码类
- 将yuv各种格式的图片转换为jpg格式的
- 2006年湖北工业大学409数据结构试题
- jpeg图像压缩实例代码
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- VS1053B编解码器的VDR分布式声音采集卡
- 基于V4L2的视频采集,能够采集YUVJPE
- x264源码及其配置文件,用于配置树莓
- 电信物联网NB-lot上传编解码插件检测
- 易语言图像编码、解码器源码易语言
- 易语言迅雷URL编解码源码
- 易语言url编解码汇编源码
- 易语言URL网址编解码源码
- 易语言URL编解码源码
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
评论
共有 条评论