MATLAB Image Processing Toolbox中自带有dct2函数实现离散余弦变换,帮助文档解释如下:

https://ww2.mathworks.cn/help/images/ref/dct2.html?s_tid=doc_ta

C语言版本实现如下:

/*
Remind: The caller must call free to release memory !!!
*/
#include<stdlib.h>
#include<math.h>     //必须使用math库
#define PI acos(-1)  //预定义PI值,C语言没有自带PIfloat ** dct2(float ** A, int rowSize, int colSize){float ** res = (float**)malloc(rowSize*sizeof(float*));  //分配空间,注意:res的内容为指针!!!for(int i=0; i<rowSize; i++){res[i] = (float*)malloc(colSize*sizeof(float)); //为res的每个元素(指针)分配空间for(int j=0; j<colSize; j++) res[i][j]=0; //初始化}float ap = 0.0;  float aq = 0.0;for(int p=0; p<rowSize; p++){if(p==0)ap = sqrt(1/(float)rowSize);elseap = sqrt(2/(float)rowSize);for(int q = 0; q < colSize; q++){if(q ==0)aq = sqrt(1/(float)colSize);elseaq = sqrt(2/(float)colSize);for(int i=0; i<rowSize; i++){for(int j = 0; j<colSize; j++){res[p][q] += ap*aq*(A[i][j])*cos((2*i+1)*p*PI/(2*rowSize))*cos((2*j+1)*q*PI/(2*colSize));}}}}return res;  //调用该函数时必须手动free()释放空间!!!
}

DCT离散余弦变换(C语言)相关推荐

  1. dct余弦离散c语言,DCT离散余弦变换的DSP实现.doc

    DCT离散余弦变换的DSP实现 学生姓名: 指导老师: TMS320VC5402的特性,以运用TMS320VC5402定点DSP芯片完成MPEG-4标准中DCT系数量化为例,简要介绍MPEG-4标准的 ...

  2. JPEG压缩原理与DCT离散余弦变换 量化

    原文网址:http://blog.csdn.net/newchenxf/article/details/51719597 1 前言 JPEG是joint Photographic Experts Gr ...

  3. java dct变换_Discrete Cosine Transform [DCT] (离散余弦变换)

    Discrete Cosine Transform [DCT] (离散余弦变换) 描述:Binarizer是一个Transformer. 离散余弦变换是与傅里叶变换相关的一种变换,它类似于离散傅立叶变 ...

  4. 基于DCT离散余弦变换的自适应水印算法的设计

    文章目录 前言 一.目的和需求分析 1.1项目设计目的 1.2项目需求分析 二.图像预处理 2.1 图像预处理的作用 2.2 Logistic混沌映射置乱 2.2 细胞自动机处理 均值滤波平滑处理 三 ...

  5. DCT离散余弦变换原理与应用讲解

    1 前言 JPEG是joint Photographic Experts Group(联合图像专家组)的缩写,文件后辍名为".jpg"或".jpeg".  jp ...

  6. DCT(离散余弦变换(DiscreteCosineTransform))

    离散余弦变换(Discrete Cosine Transform,简称DCT变换)是一种与傅立叶变换紧密相关的数学运算.在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项 ...

  7. C语言实现离散余弦变换(DCT)并用MATLAB和Python验证

    概念 离散余弦变换(Discrete Cosine Transform,DCT)是可分离的变换,其变换核为余弦函数.是与傅里叶变换相关的一种变换,它相当于把离散傅里叶变换的虚数部分丢掉,只使用实数.D ...

  8. 二维离散余弦变换(DCT)与二维离散反余弦变换(IDCT)C语言实现

    二维离散余弦变换(DCT)与二维离散反余弦变换(IDCT)C语言实现 实验目标 对一个8x8的矩阵进行DCT和IDCT然后在观察前者和后者的变化 实验准备 理论基础 二维离散余弦变换 F ( u , ...

  9. 二维离散变换由c语言编写,离散余弦变换(DCT)的DSP程序设计与实现

    <离散余弦变换(DCT)的DSP程序设计与实现>由会员分享,可在线阅读,更多相关<离散余弦变换(DCT)的DSP程序设计与实现(15页珍藏版)>请在人人文库网上搜索. 1.DS ...

最新文章

  1. 安全系列------web环境搭建组合
  2. 点个外卖搞定「软中断」
  3. c#使用正则表达式获取TR中的多个TD_PHP正则表达式技术心得与使用技巧完全详解 第3节...
  4. 成都女孩弃港大全额奖学金,将去北大读马克思,“我对党史和马克思很有感情”!...
  5. SQL语言:DQL,DML,DDL,DCL
  6. html小球与边框碰撞反弹,通过JS如何实现多个小球碰撞反弹
  7. 从几个简单例子聊聊Verilog的参数化设计(parameter、localparam和`define)
  8. 听某个老师的ElasticSearch记的笔记了
  9. 安装SQL2000,出现以前的某个程序安装已在安装计算机上创建挂起的文件操作(完美解决)
  10. 数量金融学(3):Markowitz均值-方差模型
  11. 如何进行第一次单片机烧录
  12. cadence学习笔记 从ultra librarain网站下载封装并生成封装文件
  13. 计算机网络原理笔记 第三章 数据链路层(一)
  14. Android允许后台活动管理,安卓基础知识(活动)
  15. HiveQL 书写规范
  16. IBM 混合数据仓库架构介绍
  17. 南京大学计算机学院宋教授,宋云教授
  18. 比特的认识和原码,反码,补码的学习
  19. qmake手册(初级部分)
  20. pyqt 槽任意参数_[钢结构·探讨]“柱脚”引发的吐槽

热门文章

  1. ASP.NET给图片加水印
  2. 解决远古VOD注入漏洞
  3. Fedora 14 安装 mplayer + kmplayer
  4. 1.OpenHarmony
  5. synopsys破解教程具体操作
  6. 【Markdown】使用简记
  7. DataGridView和GridView控件的区别是
  8. 构造方法、String类、集合
  9. 电子邮件服务器限制匿名,匿名(垃圾)邮件的根源—网络上几乎所有服务器都不可避免的“漏洞-站长资讯中心...
  10. python键盘记录255是哪个按键_Keylogger: Python写的键盘敲击记录器