資源簡介
平臺vs c++與opencv 實現圖像壓縮 訓練矢量 LBG算法設計碼書 根據碼書顯示壓縮后圖像
代碼片段和文件信息
#include?“stdafx.h“
#define?_CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
#include?
#include
#include
using?namespace?cv;
using?namespace?std;
double?num[512][512]?=?{?0?};
double?data5[512][512]?=?{?0?};
double?data3[4096][64]?=?{?0?};
double?data1[512?*?512]?=?{?0?};
double?data2[4096][64]?=?{?0?};
double?MIU[4096][512]?=?{?0?};
double?code_book1[512][64]?=?{?0?};
int?main(int?argc?char*?argv[])
{
const?char*?imagename?=?“Lena.jpg“;
IplImage?*?img?=?cvLoadImage(imagename);
if?(!img)
{
fprintf(stderr?“Can?not?load?image?%s\n“?imagename);
return?-1;
}
if?(!img->imageData)?//?檢查是否正確載入圖像
return?-1;
cvNamedWindow(“image“?CV_WINDOW_AUTOSIZE);?//創建窗口
cvShowImage(“image“?img);?//顯示圖
IplImage*?img1?=?cvCreateImage(cvGetSize(img)?IPL_DEPTH_8U?1);//創建目標圖像
cvCvtColor(img?img1?CV_BGR2GRAY);//cvCvtColor(srcdesCV_BGR2GRAY)
cvNamedWindow(“gray_image“?CV_WINDOW_AUTOSIZE);//創建顯示目標的窗口
cvShowImage(“gray_image“?img1);//顯示灰度圖像
cvSaveImage(“Gray.jpg“?img1?0);
cvWaitKey();
cvReleaseImage(&img);
cvReleaseImage(&img1);
//system(“pause“);
IplImage?*img2?=?cvLoadImage(“Gray.jpg“?0);
CvScalar?pixel;
int?m?=?512;
int?n?=?512;
for?(int?i?=?0;?i?height;?++i)
{
for?(int?j?=?0;?j?width;?++j)
{
//獲得像素的RGB值并顯示????
pixel?=?cvGet2D(img2?i?j);
//printf(“B=%fG=%fR=%f\t“?pixel.val[0]?pixel.val[1]?pixel.val[2]);
num[i][j]?=?pixel.val[0];
}
}
for?(int?ii?=?0;?ii? for?(int?ij?=?0;?ij? num[ii][ij]?=?num[ii][ij]?/?255;
}
cout?<“歸一化數據為“?< for?(int?ii?=?0;?ii?8;?ii++)?{
for?(int?ij?=?0;?ij?8;?ij++)?{
cout?< }
cout?< }
//system(“pause“);
//設置碼字大小為8?*?8即64個像素值
int?code_word_size?=?64;
//設置碼書大小
int?code_book_size?=?512;
for?(int?ii?=?0;?ii?512;?ii++)?{
for?(int?ij?=?0;?ij?512;?ij++)?{
data1[ii*n?+?ij]?=?num[ii][ij];
}
}
int?M1?=?floor(m*n?/?code_word_size);
//這里m1等于4096
int?r?=?(m*n)?%?code_word_size;
//這里r等于0
if?(r?>?0)?{
M1?+=?1;
}
cout?<“66“?< int?l?=?1;
double?A[64]?=?{?0?};
r?=?1;
for?(int?ii?=?0;?ii? A[r]?=?data1[ii];
if?(r?==?code_word_size)?{
for?(int?ij?=?0;?ij?64;?ij++)?{
data2[l][ij]?=?A[ij];
}
l?=?l?+?1;
r?=?1;
}
else?{
r?=?r?+?1;
}
//cout?< }
cout?<“82“?< double?code_book[512][64]?=?{?0?};
cout?<“84“?< //圖像矢量壓縮基于LbG算法實現
l?=?1;
r?=?1;
//double?A[64]?=?{?0?};//初始化碼書
for?(int?ii?=?0;?ii?64;?ii++)
A[ii]?=?0;
for?(int?ii?=?0;?ii? A[r]?=?data1[ii];
if?(r?==?code_word_size)?{
for?(int?ij?=?0;?ij?64;?ij++)
code_book[l][ij]?=?A[ij];
l?+=?1;
r?=?1;
}
else?{
r?+=?1;
}
}
cout?<“103“
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-11-25?19:37??compression\
?????目錄???????????0??2018-11-25?01:58??compression\.vs\
?????目錄???????????0??2018-11-25?01:58??compression\.vs\ConsoleApplication2\
?????目錄???????????0??2018-11-25?01:58??compression\.vs\ConsoleApplication2\v14\
?????文件???????44544??2018-11-24?13:03??compression\.vs\ConsoleApplication2\v14\.suo
?????目錄???????????0??2018-11-25?01:58??compression\ConsoleApplication2\
?????文件????????6041??2018-11-24?13:00??compression\ConsoleApplication2\ConsoleApplication2.cpp
?????文件????????8795??2018-11-24?10:19??compression\ConsoleApplication2\ConsoleApplication2.vcxproj
?????文件????????1326??2018-11-22?14:54??compression\ConsoleApplication2\ConsoleApplication2.vcxproj.filters
?????文件?????????165??2018-11-22?15:06??compression\ConsoleApplication2\ConsoleApplication2.vcxproj.user
?????目錄???????????0??2018-11-25?01:58??compression\ConsoleApplication2\Debug\
?????目錄???????????0??2018-11-25?01:58??compression\ConsoleApplication2\Debug\ConsoleA.8E535029.tlog\
?????文件????????1994??2018-11-22?14:56??compression\ConsoleApplication2\Debug\ConsoleA.8E535029.tlog\CL.command.1.tlog
?????文件????????5216??2018-11-22?14:56??compression\ConsoleApplication2\Debug\ConsoleA.8E535029.tlog\CL.read.1.tlog
?????文件????????1638??2018-11-22?14:56??compression\ConsoleApplication2\Debug\ConsoleA.8E535029.tlog\CL.write.1.tlog
?????文件?????????243??2018-11-22?14:56??compression\ConsoleApplication2\Debug\ConsoleA.8E535029.tlog\ConsoleApplication2.lastbuildstate
?????文件???????????0??2018-11-22?14:56??compression\ConsoleApplication2\Debug\ConsoleA.8E535029.tlog\unsuccessfulbuild
?????文件????????1073??2018-11-22?14:56??compression\ConsoleApplication2\Debug\ConsoleApplication2.log
?????文件?????3407872??2018-11-22?14:56??compression\ConsoleApplication2\Debug\ConsoleApplication2.pch
?????文件???????12474??2018-11-22?14:56??compression\ConsoleApplication2\Debug\stdafx.obj
?????文件???????93184??2018-11-22?14:56??compression\ConsoleApplication2\Debug\vc140.idb
?????文件??????143360??2018-11-22?14:56??compression\ConsoleApplication2\Debug\vc140.pdb
?????文件???????90965??2018-11-24?13:00??compression\ConsoleApplication2\Gray.jpg
?????文件??????719641??2018-11-07?11:31??compression\ConsoleApplication2\Lena.jpg
?????文件?????????122??2018-11-24?12:44??compression\ConsoleApplication2\ReadMe.txt
?????文件?????????223??2018-11-22?14:54??compression\ConsoleApplication2\stdafx.cpp
?????文件?????????234??2018-11-22?14:54??compression\ConsoleApplication2\stdafx.h
?????文件?????????240??2018-11-22?14:54??compression\ConsoleApplication2\targetver.h
?????目錄???????????0??2018-11-25?01:58??compression\ConsoleApplication2\x64\
?????目錄???????????0??2018-11-25?01:58??compression\ConsoleApplication2\x64\Debug\
?????目錄???????????0??2018-11-25?01:58??compression\ConsoleApplication2\x64\Debug\ConsoleA.8E535029.tlog\
............此處省略34個文件信息
評論
共有 條評論