【matlab图像处理笔记5】【图像变换】(四)图像的正交变换
文章目录
- 推荐阅读
- 前言
- 图像正交变换简介
- 离散傅里叶变换
- 对图像进行离散傅里叶变换的作用
- 二维离散傅里叶变换
- 频谱图
- 示例
- 离散余弦变换
- 简介
- 基本原理
- 示例
推荐阅读
本系列其他文章
- 【matlab图像处理笔记2】【图像变换】(一)图像的算术运算与几何变换、图像插值算法_Twilight Sparkle.的博客-CSDN博客
- 【matlab图像处理笔记3】【图像变换】(二)图像的形态学变换_Twilight Sparkle.的博客-CSDN博客
- 【matlab图像处理笔记4】【图像变换】(三)图像的霍夫变换_Twilight Sparkle.的博客-CSDN博客
相关文章
- 【从FT到DFT和FFT】(一)从三角函数正交性到傅里叶变换的详细公式推导_Twilight Sparkle.的博客-CSDN博客
- 【从FT到DFT和FFT】(二)从傅里叶变换到离散傅里叶变换_Twilight Sparkle.的博客-CSDN博客
- 【从FT到DFT和FFT】(三)从离散傅里叶变换到快速傅里叶变换_Twilight Sparkle.的博客-CSDN博客
参考文章
- 如何理解 图像傅里叶变换的频谱图_双子的孤独的博客-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−1y=0∑N−1f(x,y)e−i2π(Mux+Nvy)f(u,v)=MN1x=0∑M−1y=0∑N−1F(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−1y=0∑N−1f(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)=⎩⎨⎧M1,u=0M2,u=0,a(v)=⎩⎨⎧N1,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−1y=0∑N−1a(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)=⎩⎨⎧M1,u=0M2,u=0,a(v)=⎩⎨⎧N1,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】【图像变换】(四)图像的正交变换相关推荐
- 【matlab图像处理笔记4】【图像变换】(三)图像的霍夫变换
文章目录 推荐阅读 前言 霍夫变换概述 霍夫变换直线检测原理 从笛卡尔坐标系到霍夫空间 两点一线的霍夫空间形式 寻找共线的点 直角坐标系存在的问题 极坐标参数空间下的霍夫变换 matlab霍夫变换直线 ...
- MATLAB学习笔记(十四)
MATLAB学习笔记(十四) 一.线性方程组求解 1.1 直接法 1.1.1 利用左除运算符 1.1.2 利用矩阵分解 1.2 迭代法 1.2.1 雅可比(Jacobi)迭代法 1.2.2 高斯-赛德 ...
- 数字图像处理笔记(一)——图像存储空间,分辨率,图像内插
数字图像处理笔记(一)--图像存储空间,分辨率,图像内插 本系列笔记是笔者在学习冈萨雷斯<数字图像处理>第三版时做的总结,日后看的时候方便点,如果有幸得到大家的讨论,喜上眉梢. 本节参考书 ...
- matlab将图片旋转的代码_从零开始的matlab学习笔记——(27)图像旋转与动态图...
matlab应用--求极限,求导,求积分,解方程,函数绘图,三维图像,拟合函数....更多内容尽在个人专栏:matlab学习 昨天思考了一下,因为笔者的GUI只是刚刚入门,如果直接说的话也说不了多少东 ...
- Matlab图像处理笔记--图像修复
大多数的修图软件都是通过借用相邻像素内容来对照片进行处理,这其中比较有代表性的就要数Adobe的修图软件了,但这这种方式也有一定的缺陷,就是当你的图像变成这个样子时,那么这张照片就彻底没救了,如下图所 ...
- Matlab图像处理基础(一)图像类型的转换
图像类型转换 首先我们需要知道图像类型有哪几种:二值图像,灰度图像,真彩色图像,索引色图像 四种. 一. RGB图像转换为灰度图像 需要调用 rgb2gray() 函数,调用格式为: X =rgb2g ...
- Matlab图像处理与分析之压力分布图像获得
(若有侵权,请立刻联系笔者删除) 各位兄弟姐妹们好久不见,由于老板一直在催促着画图所以一直没有更新相关学习内容,此次带来的偏向于对课程实验结果的一次图像处理,测量的是压力分布,谈到压力测量可能我们第一 ...
- MATLAB 基础笔记(三):二维图像绘图
笔记三是简单介绍二维绘图的函数和一些绘图的辅助技巧. 目录 笔记三是简单介绍二维绘图的函数和一些绘图的辅助技巧. 1.plot函数绘制图像 2.添加坐标轴范围和坐标轴标签以及标题 3.改变线型.颜色和 ...
- Matlab图像处理相关
相关函数: 读取:imread() %参数为文件名(路径)或url,格式等 写入:imwrite() %参数为写入数据矩阵,写入文件名(路径),格式等 显示:imshow() %显示由输入决定,属性自 ...
最新文章
- Linux那些事儿 之 戏说USB(18)设备的生命线(一)
- iOS系类教程之用instruments来检验你的app
- 关于工资的三个秘密【转载】
- Call调用webservice接口,使用命名空间和不使用命名空间的区别
- (转)ZwQuerySystemInformation枚举内核模块及简单应用
- JavaFX加载界面报错:fxcontroller can only be applied to root element?
- Testin云測试破7000万次:崩溃成90%手游应用质量难题
- ActiveMQ发布订阅模式
- Excel 散点图和折线图的区别
- DataSource接口,一个被大多数程序员忽略的接口
- JavaWeb:HTML
- mysql主备集群(高可用)
- JAVA基础语法_1
- 《实用VC编程之玩转控件》第1课:Windows编程简介
- java如果判断文件夹或文件不存在就创建文件夹或文件
- 2021年新版电影小程序商业版+前端无后门+搭建教程亲测可用
- 索尼 LT26I刷机包 X.I.D 加入官方风格 GF A3.9.4 各方面完美
- 翻译科技论文,俄译中怎样效果好
- # Linux系统操作(九)
- 图像处理特征提取之局部特征