资源简介
VectorQuantization 矢量量化数据压缩编码 对Lena图像压缩 平台vs c++编程
代码片段和文件信息
#include
#include
#include
#include
#define Mx 512
#define Nx 512
#define Ax 2
#define Bx 2
using namespace std;
struct Color
{
int R;
int G;
int B;
};
bool bmpRead(vector> &imageVec const char *fileName)
{
ifstream file(fileName ios::in | ios::binary);
if (!file)
return false;
// skip header
const ifstream::off_type headerSize = 54;
file.seekg(headerSize ios::beg);
// read body
for (size_t y = 0; y != imageVec.size(); ++y)
{
for (size_t x = 0; x != imageVec[0].size(); ++x)
{
char chR chG chB;
file.get(chB).get(chG).get(chR);
imageVec[y][x].B = chB;
imageVec[y][x].G = chG;
imageVec[y][x].R = chR;
if (imageVec[y][x].B < 0)
imageVec[y][x].B = 255 + imageVec[y][x].B;
if (imageVec[y][x].G < 0)
imageVec[y][x].G = 255 + imageVec[y][x].G;
if (imageVec[y][x].R < 0)
imageVec[y][x].R = 255 + imageVec[y][x].R;
}
}
file.close();
return true;
}
bool bmpWrite(vector> &imageVec const char *fileName)
{
const int headerSize = 54;
char header[headerSize] = {
0x42 0x4d 0 0 0 0 0 0 0 0
54 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 1 0 24 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 };
int ysize = imageVec.size();
int xsize = imageVec[0].size();
long file_size = (long)ysize * xsize * 3 + 54;
header[2] = (unsigned char)(file_size & 0x000000ff);
header[3] = (file_size >> 8) & 0x000000ff;
header[4] = (file_size >> 16) & 0x000000ff;
header[5] = (file_size >> 24) & 0x000000ff;
long width = xsize;
header[18] = width & 0x000000ff;
header[19] = (width >> 8) & 0x000000ff;
header[20] = (width >> 16) & 0x000000ff;
header[21] = (width >> 24) & 0x000000ff;
long height = ysize;
header[22] = height & 0x000000ff;
header[23] = (height >> 8) & 0x000000ff;
header[24] = (height >> 16) & 0x000000ff;
header[25] = (height >> 24) & 0x000000ff;
ofstream file(fileName ios::out | ios::binary);
if (!file)
return false;
// write header
file.write(header headerSize);
// write body
for (size_t y = 0; y != imageVec.size(); ++y)
{
for (size_t x = 0; x != imageVec[0].size(); ++x)
{
//char chB = imageVec[y][x].B;
//char chG = imageVec[y][x].G;
//char chR = imageVec[y][x].R;
int chB = (imageVec[y][x].B * 0.114 + imageVec[y][x].G * 0.587 + imageVec[y][x].R * 0.299);
// int chG = (imageVec[y][x].B+imageVec[y][x].G+imageVec[y][x].R)/3;
// int chR = (imageVec[y][x].B+imageVec[y][x].G+imageVec[y][x].R)/3;
file.put(chB).put(chB).put(chB);
//cout << chB <<““< }
}
file.close();
return true;
}
int main()
{
const size_t sizey = 512;
const size_t sizex = 512;
vector> imageVec(sizey vector(sizex));
vector> imageVecNew(sizey vector(sizex));
vector> codebook(65 vector(Ax * Bx));
vector> image((Mx / Ax) * (Nx / Bx) vector(Ax * Bx
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-11-25 22:13 VectorQuantization-master\
目录 0 2018-11-25 14:25 VectorQuantization-master\.vs\
目录 0 2018-11-25 14:25 VectorQuantization-master\.vs\VQ\
目录 0 2018-11-25 14:25 VectorQuantization-master\.vs\VQ\v14\
文件 23552 2018-03-22 02:46 VectorQuantization-master\.vs\VQ\v14\.suo
目录 0 2018-11-25 14:25 VectorQuantization-master\Debug\
文件 158720 2018-03-22 02:46 VectorQuantization-master\Debug\VQ.exe
文件 1461728 2018-03-22 02:46 VectorQuantization-master\Debug\VQ.ilk
文件 2347008 2018-03-22 02:46 VectorQuantization-master\Debug\VQ.pdb
文件 633 2018-03-22 02:46 VectorQuantization-master\README.md
目录 0 2018-11-25 14:25 VectorQuantization-master\VQ\
目录 0 2018-11-25 14:25 VectorQuantization-master\VQ\Debug\
文件 589338 2018-03-22 02:46 VectorQuantization-master\VQ\Debug\Source.obj
文件 894 2018-03-22 02:46 VectorQuantization-master\VQ\Debug\VQ.log
目录 0 2018-11-25 14:25 VectorQuantization-master\VQ\Debug\VQ.tlog\
文件 618 2018-03-22 02:46 VectorQuantization-master\VQ\Debug\VQ.tlog\CL.command.1.tlog
文件 16140 2018-03-22 02:46 VectorQuantization-master\VQ\Debug\VQ.tlog\CL.read.1.tlog
文件 396 2018-03-22 02:46 VectorQuantization-master\VQ\Debug\VQ.tlog\CL.write.1.tlog
文件 194 2018-03-22 02:46 VectorQuantization-master\VQ\Debug\VQ.tlog\VQ.lastbuildstate
文件 1066 2018-03-22 02:46 VectorQuantization-master\VQ\Debug\VQ.tlog\li
文件 2830 2018-03-22 02:46 VectorQuantization-master\VQ\Debug\VQ.tlog\li
文件 370 2018-03-22 02:46 VectorQuantization-master\VQ\Debug\VQ.tlog\li
文件 379904 2018-03-22 02:46 VectorQuantization-master\VQ\Debug\vc140.idb
文件 462848 2018-03-22 02:46 VectorQuantization-master\VQ\Debug\vc140.pdb
文件 8811 2018-03-22 02:46 VectorQuantization-master\VQ\Source.cpp
文件 7221 2018-03-22 02:46 VectorQuantization-master\VQ\VQ.vcxproj
文件 935 2018-03-22 02:46 VectorQuantization-master\VQ\VQ.vcxproj.filters
文件 8605696 2018-03-22 02:46 VectorQuantization-master\VQ.VC.db
文件 7340032 2018-11-25 19:37 VectorQuantization-master\VQ.sdf
文件 1260 2018-03-22 02:46 VectorQuantization-master\VQ.sln
文件 19968 2018-11-25 19:37 VectorQuantization-master\VQ.v12.suo
............此处省略3个文件信息
- 上一篇:MFC制作画板...
- 下一篇:CTP C#交易接口
相关资源
- C++ primer中文版
- 最好的C++入门速成教材,1-2天可看完
- C++版AVL树课程设计源代码
- k-means算法 基于c++语言实现
- netcdf 4.4.1 c/c++类库windows64位绿色版
- 轴承表面质量缺陷识别与统计系统
- VC++ MFC科学计算器,含代码和整个工程
- 图像去雾算法源代码c++
- VC++实现小波变换
- 基于混沌算法的图像加密系统C++源码
- C++写的连接SQL的学生成绩管理系统
- C++:The Core Language
- windows下获取CPU、BIOS、硬盘、MAC地址
- 计算机图形学 visual c++ 6.0 实时动画有
- 计算机图形学 visual c++ 6.0 三维变换有
- C++画图软件GUI
- C++MFC作业彩票机-模拟双色球
- C++实现的中文分词
- VC++实现简单的用户登录系统ADO。包括
- VC++实现简单的用户登录系统,包括修
- C++中文版手册 可直接开打查看
- 图书管理系统MFC版
- 西北工业大学C/C++程序设计大作业包含
- C++实现编译原理自动机、LL1文法、及
- Visual C++数据库编程技术与光盘
- C++实现A*算法十五数码问题
- 五子棋(C++Builder)
- gtest1.6.0.zip
- window开源asn.1
- gdal-1.9.2基于vs2010已编译好的c++
评论
共有 条评论