c语言实现DCT变换.txt

上传人:wj 文档编号:1213130 上传时间:2023-04-30 格式:TXT 页数:4 大小:2.59KB
下载 相关 举报
c语言实现DCT变换.txt_第1页
第1页 / 共4页
c语言实现DCT变换.txt_第2页
第2页 / 共4页
c语言实现DCT变换.txt_第3页
第3页 / 共4页
c语言实现DCT变换.txt_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言实现DCT变换.txt

《c语言实现DCT变换.txt》由会员分享,可在线阅读,更多相关《c语言实现DCT变换.txt(4页珍藏版)》请在冰点文库上搜索。

c语言实现DCT变换.txt

#include

#include

#include

#include

#defineM8 //8x8����

#defineN8

#defineP3.141593

voidPrint(floata[M][N]) //��ʾ����

{

inti,j;

intaa[M][N];

for(i=0;i

{

for(j=0;j

{

aa[i][j]=(int)(a[i][j]); //ȡ��

printf("%d,",aa[i][j]);

}

printf("\n");

}

}

voidFast(floata[N][M],floatb[M][N]) //ת�ú���

{

inti,j;

for(i=0;i

for(j=0;j

a[j][i]=b[i][j];

}

voidMult(floata[M][N],floatb[M][N],floatc[M][N]) //DCT���任

{

inti,j,k;

floatsum;

for(i=0;i

for(j=0;j

{

sum=0;

for(k=0;k

sum+=a[i][k]*b[k][j];

c[i][j]=sum;

}

}

voidIMult(floata[M][N],floatb[M][N],floatc[M][N]) //DCT���任

{

inti,j,k;

floatsum;

for(i=0;i

for(j=0;j

{

sum=0;

for(k=0;k

sum+=a[k][j]*b[i][k];

c[i][j]=sum;

}

}

voidLH(floata[M][N],floatb[M][N],floatc[M][N]) //����

{

inti,j;

for(i=0;i

for(j=0;j

c[i][j]=2*a[i][j]/b[i][j];

}

voidFLH(floata[M][N],floatb[M][N],floatc[M][N]) //������

{

inti,j;

for(i=0;i

for(j=0;j

c[i][j]=a[i][j]*b[i][j]/2;

}

voidmain() //������

{

floatDCT[M][N],TDCT[N][M];

floattemp[M][N],F[M][N];

floatCk;

inti,j;

floatq[M][N]; //��������

floatf[M][N]; //DCT�任���

floatff[M][N]; //DCT���任���

floatlh[M][N]; //�������

floatflh[M][N]; //���������

FILE*fp=fopen("YuanShi.txt","r"),*fp2=fopen("Q.txt","r");

if(fp==NULL) //����ԭʼ����

printf("error!

");

for(i=0;i

for(j=0;j

fscanf(fp,"%f",&f[i][j]);

fclose(fp);

if(fp2==NULL) //������������

printf("error!

");

for(i=0;i

for(j=0;j

fscanf(fp2,"%f",&q[i][j]);

fclose(fp2);

for(i=0;i

{

if(i==0)

Ck=1.000000/sqrt

(2);

elseCk=1;

for(j=0;j

DCT[i][j]=sqrt(2.000000/N)*Ck*cos((2*j+1)*i*P/(2*N)); //DCTϵ��

}

Fast(TDCT,DCT); //��ת��

Mult(DCT,f,temp); //��DCT�任

Mult(temp,TDCT,F); //��DCT�任

LH(F,q,lh); //����

FLH(lh,q,flh); //������

IMult(DCT,flh,temp); //��DCT���任

IMult(temp,TDCT,ff); //��DCT���任

freopen("DCT.txt","w",stdout); //���DCT�任�������F���ļ�DCT.txt

Print(F);

fclose(stdout);

freopen("LH.txt","w",stdout); //��������������lh���ļ�LH.txt

Print(lh);

fclose(stdout);

freopen("FLH.txt","w",stdout); //����������������flh���ļ�FLH.txt

Print(flh);

fclose(stdout);

freopen("IDCT.txt","w",stdout); //���DCT���任�������ff���ļ�IDCT.txt

Print(ff);

fclose(stdout);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2