离散余弦变换 - Discrete Cosine Transform
离散余弦变换(DCT)最近可能要用,不过之前上课学的内容有点忘记了,这里复习一下。
离散余弦变换的定义
与傅里叶变换的思想相似,离散余弦变换(Discrete CosineTransform - DCT)将函数表达为许多不同幅度和频率的余弦函数的和。对于图像这样一种二维函数而言,在对其进行离散余弦变换后,图像中大部分的,在视觉上比较重要的信息都会集中在小部分的DCT系数上面。由于这个原因,DCT经常被用于图像压缩的应用场景当中。例如,DCT算法是JPEG(Joint Photographic Experts Group)这样一个国际标准有损压缩算法的核心部分。
对于一个二维的离散序列A(即一个M行N列的矩阵),它的二维离散余弦变换定义如下所示:
其中,Bpq的值被称为矩阵A的DCT系数,在得到所有的DCT系数后,便形成了一个与A同样大小的矩阵B。通过下面的反离散余弦变换(Inverse Discrete Cosine Transform)公式,可以由矩阵B恢复原来的离散序列A:
离散余弦变换的应用
变换除了可以应用于图像压缩之外,由于其与傅里叶变换一样,将信号从空域(或时域)转化成了频域,因而可以通过其分析信号的频域特性。例如,可以通过DCT变换后的结果分析图像的清晰度,一个使用Matlab仿真实验的结果如下所示:
在上面的结果中,左边的图表示原始图像,右边的图表示DCT变换后系数矩阵的可视化图像。从图中可以看出,一幅清晰度较高的图像对应的DCT变换系数高频成分(矩阵右下方)的值是较大的;而对图像进行模糊处理后,DCT变换系数较大值主要集中在低频成分(矩阵左上方)。许多能够自动调节焦距的相机就是利用图像的这种频域特性来实现焦距的自动检测以达到获取最清晰图像的目的。
离散余弦变换 - Discrete Cosine Transform相关推荐
- 离散余弦变换(Discrete Cosine Transform)
DCT变换和FFT变换都属于变换压缩方法(TransformCompression),变换压缩的一个特点是将从前密度均匀的信息分布变换为密度不同的信息分布.在图像中,低频部分的信息量要大于高频部分的信 ...
- DCT(离散余弦变换(DiscreteCosineTransform))
离散余弦变换(Discrete Cosine Transform,简称DCT变换)是一种与傅立叶变换紧密相关的数学运算.在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项 ...
- 压缩感知稀疏基之离散余弦变换(DCT)和离散正弦变换(DST)
题目:压缩感知稀疏基之离散余弦变换(DCT)和离散正弦变换(DST) 在前面一篇<压缩感知的常见稀疏基名称及离散傅里叶变换基>中集结了九篇压缩感知文献中有关稀疏基名称,并且直白地告诉大家稀 ...
- Python图像处理【10】基于离散余弦变换的图像压缩
基于离散余弦变换的图像压缩 0. 前言 1. 离散余弦变换基础 2. 基于离散余弦变换的图像压缩 3. 图像 JPEG 压缩 3.1 JPEG 压缩原理 3.2 JPEG 压缩实践 小结 系列链接 0 ...
- 离散余弦变换(DCT)
DCT变换.DCT反变换.分块DCT变换 一.引言 DCT变换的全称是离散余弦变换*(Discrete Cosine Transform)*,主要用于将数据或图像的压缩,能够将空域的信号转换到频域上, ...
- python离散余弦变换_数字图像处理(三)—— 离散余弦变换
离散余弦变换(Discrete Cosine Transform)本质上也是离散傅里叶变换(Discrete Fourier Transform),但是只有实数部分.有这样一个性质:如果信号 在给定区 ...
- 离散余弦变换(学习笔记)
离散余弦变换 离散余弦变换(Discrete Cosine Transform, DCT)是与傅里叶变换相关的一种变换,类似于离散傅里叶变换,但是只使用了实数 离散余弦变换相当于一个长度大概是它两倍的 ...
- java dct变换_Discrete Cosine Transform [DCT] (离散余弦变换)
Discrete Cosine Transform [DCT] (离散余弦变换) 描述:Binarizer是一个Transformer. 离散余弦变换是与傅里叶变换相关的一种变换,它类似于离散傅立叶变 ...
- 离散余弦变换和C语言实现-win32版本
离散余弦变换,DCT for Discrete Cosine Transform. 是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换(DFT for Discrete Fourier Transf ...
最新文章
- 【转】Android studio安装与配置
- kafka一键启动集群
- linux开发板显示横向彩虹,给 Linux 终端的输出添加彩虹特效的命令
- [3/21]Windows Server 2008时钟方面的改进展示
- python如何连续查找字符串_在另一个字符串Python中多次查找字符串
- vue: 组件中 template 定义
- 程序员不会SQL?骨灰级工程师:全等着被淘汰吧!这是必会技能!
- 基于Java+Spring+vue+element实现旅游信息管理平台系统
- java平均数函数_java求平均数的函数
- Linux中超过4G文件下载至windows
- linux Ubuntu 报错:No command ‘setenv‘ found
- 云平台短信验证码通知短信java/php/.net开发实现
- Python数据分析实战【十二】:机器学习决策树算法案例实战【文末源码地址】
- 汇编总结(3)——程序设计初步
- wazhu之agent功能详解
- H3C配置静态路由、下一跳地址,使PC相通
- 论微信抢红包与谁手气最佳的关系(微信红包matlab实现)
- PicGo+Typora图床搭建教程
- 制造企业工具如何进行5s管理?
- 前端工程师需要学习ps 吗_【百度前端工程师面试】前端开发技术要会PS-看准网...
热门文章
- (转)程序员不爱读书,但这很不明智
- mongo: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No suc
- Resource not found: roslaunch的解决方法
- 蚂蚁金服 SOFAStack 团队:开源不是一锤子买卖 | 码云封面人物第 16 期
- cad指北针lisp_AutoCAD_Map_3D__2010_教程.pdf
- AppletViewer使用方法介绍
- 虚拟机克隆导致Mac地址冲突
- mysql 毫秒转换为天时分秒
- Linux操作与管理文件(多次打开同一文件,文件共享,fcntl函数,标准IO库)
- php民主评议源码,校园表白墙php源码