資源簡介
對圖像進行壓縮編碼,并寫入內存,然后從內存中讀出并顯示

代碼片段和文件信息
//?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個文件信息
評論
共有 條評論