文章目录

  • 推荐阅读
  • 前言
  • 图像正交变换简介
  • 离散傅里叶变换
    • 对图像进行离散傅里叶变换的作用
    • 二维离散傅里叶变换
    • 频谱图
    • 示例
  • 离散余弦变换
    • 简介
    • 基本原理
    • 示例

推荐阅读

本系列其他文章

  1. 【matlab图像处理笔记2】【图像变换】(一)图像的算术运算与几何变换、图像插值算法_Twilight Sparkle.的博客-CSDN博客
  2. 【matlab图像处理笔记3】【图像变换】(二)图像的形态学变换_Twilight Sparkle.的博客-CSDN博客
  3. 【matlab图像处理笔记4】【图像变换】(三)图像的霍夫变换_Twilight Sparkle.的博客-CSDN博客

相关文章

  • 【从FT到DFT和FFT】(一)从三角函数正交性到傅里叶变换的详细公式推导_Twilight Sparkle.的博客-CSDN博客
  • 【从FT到DFT和FFT】(二)从傅里叶变换到离散傅里叶变换_Twilight Sparkle.的博客-CSDN博客
  • 【从FT到DFT和FFT】(三)从离散傅里叶变换到快速傅里叶变换_Twilight Sparkle.的博客-CSDN博客

参考文章

  1. 如何理解 图像傅里叶变换的频谱图_双子的孤独的博客-CSDN博客_图像傅里叶变换频谱图

前言

本文是现阶段图像变换笔记的最后一篇,将介绍图像的正交变换。

图像正交变换简介

正交变换是数字图像处理的一种有效工具。通过正交变换,我们可以将图像从时域变换到频域进行后续处理。正交变换在图像增强、图像复原、图像压缩、图像特征处理等方面都经常使用。

常用的正交变换有:离散傅里叶变换、离散余弦变换、K-L变换、小波变换等。本篇仅介绍傅里叶变换和离散余弦变换的相关内容,K-L变换和小波变换将会在后续文章补齐(希望吧)。

离散傅里叶变换

图像处理中的离散傅里叶变换其实指的是二维快速离散傅里叶变换。关于傅里叶原理与推导在之前的文章已经详细写过,详情请见"相关文章"。这里默认已经对傅里叶变换/二维离散傅里叶变换有一定了解。

对图像进行离散傅里叶变换的作用

可以将空间域(二维灰度数表)的图像转换到频域(频率数表),使得可以更方便的处理图像,也更有利于进行频域滤波等操作。

二维离散傅里叶变换

公式:
F(u,v)=∑x=0M−1∑y=0N−1f(x,y)e−i2π(uxM+vyN)f(u,v)=1MN∑x=0M−1∑y=0N−1F(x,y)ei2π(uxM+vyN)\begin{split} & F(u,v) = \sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{-i2\pi(\frac{ux}{M}+\frac{vy}{N})} \\ & f(u,v) = \frac{1}{MN}\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}F(x,y)e^{i2\pi(\frac{ux}{M}+\frac{vy}{N})} \end{split} ​F(u,v)=x=0∑M−1​y=0∑N−1​f(x,y)e−i2π(Mux​+Nvy​)f(u,v)=MN1​x=0∑M−1​y=0∑N−1​F(x,y)ei2π(Mux​+Nvy​)​
不过实际上要使用二维离散傅里叶变换,是使用的对其进行分治的基础上得到的快速二维傅里叶变换

频谱图

学习图像离散傅里叶变换,一个不得不提的就是对频谱图的理解。光有公式是不够的,还得看懂变换后的频谱图大概代表什么意思。频谱图的内容较多,我在学习时找到了很详细的文章。请见参考教程【1】。推荐先去看频谱图,这里虽然占的篇幅很少,实际上是因为自己太懒了不想重述了。

二维频谱图中每一点都是一个与之一一对应的二维正弦/余弦波。

示例

matlab中使用fft2进行二维(快速)离散傅里叶变换。

使用文档:二维快速傅里叶变换 - MATLAB fft2 - MathWorks 中国

将时域图转化为频域图:

clc;clear;close all;
load imdemos saturn2;
figure,imshow(saturn2);
title('原图');
X = fft2(saturn2);
figure,imshow(log(abs(X)),[]);
title('2d-fft');
colormap(jet(64)),colorbar;

在频域去阈值后再逆变换

clc;clear;close all;
load imdemos saturn2;
figure,imshow(saturn2);
title('原图');
X = fft2(saturn2);
figure,imshow(log(abs(X)),[]);
title('2d-fft');
colormap(jet(64)),colorbar;
X(abs(X)<10)=0;
Y = real(ifft2(X)/255);
figure(),imshow(Y,[]);

离散余弦变换

简介

离散余弦变换(Discrete Cosine Transform, DCT)是以一组不同频率和幅值的余弦函数和来近似一幅图像,实际上是傅立叶变换的实数部分。离散余弦变换有一个重要的性质,即对于一幅图像,其大部分可视化信息都集中在少数的变换系数上。因此,离散余弦变换经常用于图像压缩,例如国际压缩标准的JPEG格式中就采用了离散余弦变换。

基本原理

在傅立叶变换过程中,若被展开的函数是实偶函数,则其傅立叶变换中只包含余弦项,基于傅立叶变换的这一特点, 人们提出了离散余弦变换。DCT变换先将图像函数变换成偶函数形式,再对其进行二维离散傅立叶变换,故DCT变换可以看成是一种简化的傅立叶变换

二维离散余弦公式:

对于(M,N)(M,N)(M,N) 的序列矩阵f(x,y)f(x,y)f(x,y),二维离散余弦变换定义如下:

DCT:
F(u,v)=a(u)a(v)∑x=0M−1∑y=0N−1f(x,y)cos(2x+1)uπ2Mcos(2y+1)uπ2NF(u,v) = a(u)a(v)\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)cos\frac{(2x+1)u\pi}{2M}cos\frac{(2y+1)u\pi}{2N} F(u,v)=a(u)a(v)x=0∑M−1​y=0∑N−1​f(x,y)cos2M(2x+1)uπ​cos2N(2y+1)uπ​
其中,u=0,1,...,M−1,v=0,1,...,N−1u=0,1,...,M-1,v=0,1,...,N-1u=0,1,...,M−1,v=0,1,...,N−1
a(u)={1M,u=02M,u≠0,a(v)={1N,v=02N,v≠0a(u) =\left\{ \begin{aligned} \frac{1}{\sqrt M},u=0\\ \sqrt \frac{2}{M},u\neq0\\ \end{aligned} \right.,a(v) =\left\{ \begin{aligned} \frac{1}{\sqrt N},v=0\\ \sqrt \frac{2}{N},v\neq0\\ \end{aligned} \right. a(u)=⎩⎨⎧​M​1​,u=0M2​​,u=0​,a(v)=⎩⎨⎧​N​1​,v=0N2​​,v=0​
IDCT:
f(x,y)=∑x=0M−1∑y=0N−1a(u)a(v)F(u,v)cos(2x+1)uπ2Mcos(2y+1)uπ2Nf(x,y) = \sum_{x=0}^{M-1}\sum_{y=0}^{N-1}a(u)a(v)F(u,v)cos\frac{(2x+1)u\pi}{2M}cos\frac{(2y+1)u\pi}{2N} f(x,y)=x=0∑M−1​y=0∑N−1​a(u)a(v)F(u,v)cos2M(2x+1)uπ​cos2N(2y+1)uπ​
其中,x=0,1,...,M−1,y=0,1,...,N−1x=0,1,...,M-1,y=0,1,...,N-1x=0,1,...,M−1,y=0,1,...,N−1
a(u)={1M,u=02M,u≠0,a(v)={1N,v=02N,v≠0a(u) =\left\{ \begin{aligned} \frac{1}{\sqrt M},u=0\\ \sqrt \frac{2}{M},u\neq0\\ \end{aligned} \right.,a(v) =\left\{ \begin{aligned} \frac{1}{\sqrt N},v=0\\ \sqrt \frac{2}{N},v\neq0\\ \end{aligned} \right. a(u)=⎩⎨⎧​M​1​,u=0M2​​,u=0​,a(v)=⎩⎨⎧​N​1​,v=0N2​​,v=0​

示例

matlab中使用dct2进行二维离散余弦变换。

参考文档:二维离散余弦变换 - MATLAB dct2 - MathWorks 中国

正变换:

clc;clear;close all;
load imdemos saturn2;
figure,imshow(saturn2);
title('原图');
X = dct2(saturn2);
figure,imshow(log(abs(X)),[]);
title('2d-dct');
colormap(jet(64)),colorbar;

在频域设置阈值并逆变换:

clc;clear;close all;
load imdemos saturn2;
figure,imshow(saturn2);
title('原图');
X = dct2(saturn2);
figure,imshow(log(abs(X)),[]);
title('2d-dct');
colormap(jet(64)),colorbar;
X(abs(X)<10)=0;
Y = idct2(X)/255;
figure(),imshow(Y);
title('2d-idct');

【matlab图像处理笔记5】【图像变换】(四)图像的正交变换相关推荐

  1. 【matlab图像处理笔记4】【图像变换】(三)图像的霍夫变换

    文章目录 推荐阅读 前言 霍夫变换概述 霍夫变换直线检测原理 从笛卡尔坐标系到霍夫空间 两点一线的霍夫空间形式 寻找共线的点 直角坐标系存在的问题 极坐标参数空间下的霍夫变换 matlab霍夫变换直线 ...

  2. MATLAB学习笔记(十四)

    MATLAB学习笔记(十四) 一.线性方程组求解 1.1 直接法 1.1.1 利用左除运算符 1.1.2 利用矩阵分解 1.2 迭代法 1.2.1 雅可比(Jacobi)迭代法 1.2.2 高斯-赛德 ...

  3. 数字图像处理笔记(一)——图像存储空间,分辨率,图像内插

    数字图像处理笔记(一)--图像存储空间,分辨率,图像内插 本系列笔记是笔者在学习冈萨雷斯<数字图像处理>第三版时做的总结,日后看的时候方便点,如果有幸得到大家的讨论,喜上眉梢. 本节参考书 ...

  4. matlab将图片旋转的代码_从零开始的matlab学习笔记——(27)图像旋转与动态图...

    matlab应用--求极限,求导,求积分,解方程,函数绘图,三维图像,拟合函数....更多内容尽在个人专栏:matlab学习 昨天思考了一下,因为笔者的GUI只是刚刚入门,如果直接说的话也说不了多少东 ...

  5. Matlab图像处理笔记--图像修复

    大多数的修图软件都是通过借用相邻像素内容来对照片进行处理,这其中比较有代表性的就要数Adobe的修图软件了,但这这种方式也有一定的缺陷,就是当你的图像变成这个样子时,那么这张照片就彻底没救了,如下图所 ...

  6. Matlab图像处理基础(一)图像类型的转换

    图像类型转换 首先我们需要知道图像类型有哪几种:二值图像,灰度图像,真彩色图像,索引色图像 四种. 一. RGB图像转换为灰度图像 需要调用 rgb2gray() 函数,调用格式为: X =rgb2g ...

  7. Matlab图像处理与分析之压力分布图像获得

    (若有侵权,请立刻联系笔者删除) 各位兄弟姐妹们好久不见,由于老板一直在催促着画图所以一直没有更新相关学习内容,此次带来的偏向于对课程实验结果的一次图像处理,测量的是压力分布,谈到压力测量可能我们第一 ...

  8. MATLAB 基础笔记(三):二维图像绘图

    笔记三是简单介绍二维绘图的函数和一些绘图的辅助技巧. 目录 笔记三是简单介绍二维绘图的函数和一些绘图的辅助技巧. 1.plot函数绘制图像 2.添加坐标轴范围和坐标轴标签以及标题 3.改变线型.颜色和 ...

  9. Matlab图像处理相关

    相关函数: 读取:imread() %参数为文件名(路径)或url,格式等 写入:imwrite() %参数为写入数据矩阵,写入文件名(路径),格式等 显示:imshow() %显示由输入决定,属性自 ...

最新文章

  1. Linux那些事儿 之 戏说USB(18)设备的生命线(一)
  2. iOS系类教程之用instruments来检验你的app
  3. 关于工资的三个秘密【转载】
  4. Call调用webservice接口,使用命名空间和不使用命名空间的区别
  5. (转)ZwQuerySystemInformation枚举内核模块及简单应用
  6. JavaFX加载界面报错:fxcontroller can only be applied to root element?
  7. Testin云測试破7000万次:崩溃成90%手游应用质量难题
  8. ActiveMQ发布订阅模式
  9. Excel 散点图和折线图的区别
  10. DataSource接口,一个被大多数程序员忽略的接口
  11. JavaWeb:HTML
  12. mysql主备集群(高可用)
  13. JAVA基础语法_1
  14. 《实用VC编程之玩转控件》第1课:Windows编程简介
  15. java如果判断文件夹或文件不存在就创建文件夹或文件
  16. 2021年新版电影小程序商业版+前端无后门+搭建教程亲测可用
  17. 索尼 LT26I刷机包 X.I.D 加入官方风格 GF A3.9.4 各方面完美
  18. 翻译科技论文,俄译中怎样效果好
  19. # Linux系统操作(九)
  20. 图像处理特征提取之局部特征

热门文章

  1. 计算机组成与体系架构
  2. 函数 fseek() 使用说明
  3. 我的第一篇文章——stm32的ADC+DMA+滤波算法
  4. U1C1 数据挖掘与文本分析的背景与实际应用
  5. 1、计算机毕业设计论文分析-班主任管理系统
  6. intel realsense获取8位深度图
  7. 让你在[三分钟自我介绍]中突出自我
  8. monkeyrunner的使用
  9. NAT的两种模式SNAT和DNAT介绍
  10. mysql输出当前是第几周使用week和weekofyear的区别