二维离散余弦变换(2D-DCT)
图像处理中常用的正交变换除了傅里叶变换以外,还有一些其它常用的正交变换,其中离散余弦变换DCT就是一种,这是JPEG图像压缩算法里的核心算法,这里我们也主要讲解JPEG压缩算法里所使用8*8矩阵的二维离散余弦正变换。
一维离散余弦变换
一般表达式
要弄懂二维离散余弦变换,首先我们需要先了解它在一维下的情况,具体表达式如下:
式中F(u)是第u个余弦变换值,u是广义频率变量,u=1,2,….,N-1;f(x)是时域N点序列。x= 1,2,….,N-1;
矩阵表示法
更为简洁的定义离散余弦变换是采用矩阵式定义。根据以上公式定义可知,我们可以来推导一下,DCT变换可以用矩阵的形式表示出来,例当N=8时一维离散余弦变换的表达式展开可以得到如下表达式: u=1,2,...7
当u=0,1,...,7时,我们可以根据上述公式计算出离散余弦变换时每一个f(x)前面的变换系数如下:
上式可以用矩阵的形式表达出来
F(u)为变换域矩阵,是时域f(x)与A矩阵计算的结果;A为变换系数矩阵,当N取定值时,A就是一个常量矩阵;f(x)为时域数据矩阵,即需要转换到变换域的原始数据,则一维离散余弦变换的矩阵定义式可写成下方表达式:
二维离散余弦变换
二维离散余弦变换可由下列表达式表示
6是二维离散余弦变换的正变换公式,其中f(x,y)是空间域一个N*N的二维向量元素,即一个N*N的矩阵,x,y = 0,1,2,…,N-1;F(U,V)是经计算后得到的变换域矩阵,u,v = 0,1,2,….,N-1.求和可分性是二维离散余弦变换的一个重要特征,因此我们可以用下式表示6:
由一维和二维的离散余弦变换公式性质可以推导得到二维离散余弦变换也可以写成矩阵相乘形式
A为一维离散余弦变换的变换系数矩阵,AT是A的转置矩阵
对图像进行二维离散余弦变换(2D-DCT)的步骤
1.获得图像的二维数据矩阵f(x,y);
2.求离散余弦变换的系数矩阵A;
3.求系数矩阵对应的转置矩阵AT;
4.根据公式F=A[f(x,y)]AT计算离散余弦变换;
二维离散余弦变换(2D-DCT)的更多相关文章
- Unity 用户手册用户指南二维纹理 (Texture 2D)
http://www.58player.com/blog-2327-953.html 二维纹理 (Texture 2D) 纹理 (Textures) 使您的 网格 (Meshes).粒子 (Parti ...
- 二维纹理 Texture 2D
Textures bring your Meshes, Particles, and interfaces to life! They are image or movie files that yo ...
- C++实现离散余弦变换(参数为二维指针)
C++实现离散余弦变换(参数为二维指针) 写在前面 到目前为止已经阅读了相当一部分的网格水印等方面的论文了,但是论文的实现进度还没有更上,这个月准备挑选一些较为经典的论文,将其中的算法实现.在实现论文 ...
- 二维DCT变换 | Python实现
引言 最近专业课在学信息隐藏与数字水印,上到了变换域隐藏技术,提到了其中的DCT变换,遂布置了一个巨烦人的作业,让手动给两个\(8\times8\)的矩阵做二维DCT变换,在苦逼的算了一小时后,我决定 ...
- 二维DCT变换
DCT(Discrete Consine Transform),又叫离散余弦变换,它的第二种类型,经常用于信号和图像数据的压缩.经过DCT变换后的数据能量非常集中,一般只有左上角的数值是非零的,也就是 ...
- 第47章 QR-Decoder-OV5640二维码识别—零死角玩转STM32-F429系列
第47章 QR-Decoder-OV5640二维码识别 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.y ...
- 又是新动作!微信小程序专属二维码出炉
又到了晚上,微信又给我们带来了惊喜,并这次不是新的能力,而是把大家再熟悉不过的二维码换了新的造型. 正式揭晓:微信特制的小程序码.扫一扫新二维码 只要你的微信升级到了 6.5.7 版本,就可以扫码或者 ...
- [LeetCode] 251. Flatten 2D Vector 压平二维向量
Implement an iterator to flatten a 2d vector. For example,Given 2d vector = [ [1,2], [3], [4,5,6] ] ...
- [LeetCode] Range Sum Query 2D - Mutable 二维区域和检索 - 可变
Given a 2D matrix matrix, find the sum of the elements inside the rectangle defined by its upper lef ...
随机推荐
- 稳定sqlplan方法
参考文档:SQLT (SQLTXPLAIN) - Tool that helps to diagnose SQL statements performing poorly [ID 215187.1]
- webpack学习(五)配置详解
配置详解 //使用插件html-webpack-plugin打包合并html //使用插件extract-text-webpack-plugin打包独立的css //使用UglifyJsPlugin压 ...
- apache log4j-1.2.15的使用
1.这个log4j的下载 下载 http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.15/apache-log4j-1.2.15.zip 2. ...
- Linux系统中while管道的
因为项目从AIX系统迁移到了RedHat系统,之前写过的一段Shell脚本不能成功运行,经过分析,锁定了关键代码如下: readFileContent(){ currentFile=$ fileSho ...
- PHP语言开发微信公众平台(订阅号)之curl命令(补充)
在之前的一篇随笔中,博主在调用curl命令上传文件时会经常出现上传方法过时的情况.如下图所示: 所以,我们只需要把上传方法换成创建CURLFile 类即可.如下所示 $ch = curl_init() ...
- PHP 生成全局唯一id
直接上代码: function generate_global_uniqid() { $prefix = md5(microtime(true)); // 生成唯一ID发生器 prefix,如果为服务 ...
- Entity Framework——读写分离
1 实现 CustomDbContext扩展了DbContext,其构造函数带有形式参nameOrConnectionString,可以在使用CustomDbContext时指定数据库连接字符串. D ...
- argsort
argsort函数返回的是数组值从小到大的索引值One dimensional array:一维数组 >>> x = np.array([3, 1, 2]) >>> ...
- Vue中引入jquery方法 vue-cli webpack 引入jquery
在vue-cli 生成的工程中引入了jquery(模板用的webpack) 首先在package.json里的dependencies加入"jquery" : "^2.2 ...
- Charles Proxy v4.1.3 Mac、Win64、Win32破解版
http://charles.iiilab.com/ 1. 下载Charles Proxy 4.1.3版本,百度云盘下载 或 去官网下载 2. 安装后先打开Charles一次(Windows版可以忽略 ...