#include<iostream>
#include<math.h>
using namespace std;
#define PI 3.14159265354
#define DCT_SIZE 8
float DCT_Mat[DCT_SIZE][DCT_SIZE];
float DctMap[DCT_SIZE][DCT_SIZE]=
{
130,130,130,129,134,133,129,130,
130,130,130,129,134,133,130,130,
130,130,130,129,132,132,130,130,
129,130,130,129,130,130,129,129,
127,128,127,129,131,129,131,130,
127,128,127,128,127,128,132,132,
125,126,129,129,127,129,133,132,
127,125,128,128,126,130,131,131
};
//需要DCT处理的图像输入口
/*float DctMap[DCT_SIZE][DCT_SIZE]=
{
0,0,0,0,
0,1,1,0,
0,1,1,0,
0,0,0,0
};*/
float DctMapTmp[DCT_SIZE][DCT_SIZE];
void InitDctMat()
{
int i,j,t;
for(i=0;i<DCT_SIZE;i++) DCT_Mat[0][i]=sqrt(2.0/DCT_SIZE)*sqrt(1.0/2);
for(i=1;i<DCT_SIZE;i++)
{
t=0;
for(j=0;j<DCT_SIZE;j++)
{
DCT_Mat[i][j]=sqrt(2.0/DCT_SIZE)*cos(PI/(2.0*DCT
DCT离散余弦变换C版本
最新推荐文章于 2024-03-04 13:56:44 发布
本文介绍了一种使用C语言实现DCT(离散余弦变换)的方法,包括初始化变换矩阵、进行DCT变换和IDCT逆变换的函数。通过示例展示了DCT和IDCT对图像矩阵的操作过程。
摘要由CSDN通过智能技术生成