DCT离散余弦变换C版本【转】
来源:互联网 发布:xy苹果手机助手mac版 编辑:程序博客网 时间:2024/05/28 23:12
来自:http://blog.csdn.net/calcular/article/details/46804829
#include<iostream>#include<math.h>using namespace std;#define PI 3.14159265354#define DCT_SIZE 8float 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_SIZE)*(i+t));t+=2*i; } }}void DCT(){ float t=0; int i,j,k; for(i=0;i<DCT_SIZE;i++){ for(j=0;j<DCT_SIZE;j++){ t=0; for(k=0;k<DCT_SIZE;k++) t+=DCT_Mat[i][k]*DctMap[k][j]; DctMapTmp[i][j]=t; } } for(i=0;i<DCT_SIZE;i++){ for(j=0;j<DCT_SIZE;j++){ t=0; for(k=0;k<DCT_SIZE;k++) t+=DctMapTmp[i][k]*DCT_Mat[j][k]; DctMap[i][j]=t; } }}void IDCT(){ float t=0; int i,j,k; for(i=0;i<DCT_SIZE;i++){ for(j=0;j<DCT_SIZE;j++){ t=0; for(k=0;k<DCT_SIZE;k++) t+=DCT_Mat[k][i]*DctMap[k][j]; DctMapTmp[i][j]=t; } } for(i=0;i<DCT_SIZE;i++){ for(j=0;j<DCT_SIZE;j++){ t=0; for(k=0;k<DCT_SIZE;k++) t+=DctMapTmp[i][k]*DCT_Mat[k][j]; DctMap[i][j]=(int)(t); } }}int main(){ InitDctMat(); DCT(); for(int i=0;i<DCT_SIZE;i++) { for(int j=0;j<DCT_SIZE;j++) { cout<<DctMap[i][j]<<" "; } cout<<endl; } IDCT(); for(int i=0;i<DCT_SIZE;i++) { for(int j=0;j<DCT_SIZE;j++) { cout<<DctMap[i][j]<<" "; } cout<<endl; }}
0 0
- DCT离散余弦变换C版本【转】
- DCT离散余弦变换C版本
- 离散余弦变换 DCT
- 离散余弦变换DCT
- 离散余弦变换DCT
- 离散余弦变换(DCT)
- 离散余弦变换(DCT)
- DCT(离散余弦变换(DiscreteCosineTransform))
- 离散余弦变换(DCT)
- DCT离散余弦变换编程
- 图像变换(离散余弦变换DCT)
- 关于离散余弦变换(DCT)---转载
- DCT 离散余弦变换(Discrete Cosine Transform)
- matlab实现离散余弦变换(DCT)
- 离散余弦变换(DCT)的来龙去脉
- 离散傅立叶变换DFT和离散余弦变换DCT
- DCT离散余弦变换及其逆变换+代码
- C实现 离散余弦转换DCT 源代码
- qt 实现md5 算法加密
- hiho1234--Fractal(高精度比较问题)
- bootstrap设置table的样式
- 关于Recyclerview使用时的一个错误java.lang.NoSuchMethodError: No static method getMatrix(Landroid/view/View;)
- 微信小程序 开发工具及开发环境配置
- DCT离散余弦变换C版本【转】
- 基于lmbp神经网络的效能评估(源代码)
- PHP基础教程十四之使用MySqli操作数据库
- Spring Data+Hibernate+JTA 中pom.xml的配置
- HDU 5878 -- 丑数打表(2016 ACM/ICPC Asia Regional Qingdao Online)
- Session中的对象注意要序列化
- datagrid判断数据是否可以合并并合并单元格
- c++发送消息格式为JSON的http请求
- C#学习笔记01——SqlBulkCopy