图像的变换——fft/ ifft、fftn、fft2、dct2、dict2、dctmtx
文章目录
- 一、离散傅立叶变换
- 1.fft/ ifft——快速傅立叶变换/反变换
- 2.fftn-进行n维快速傅里叶变换
- 3.fft2-进行2维快速傅里叶变换
- 二、离散余弦变换
- 1.dct2 函数
- 2.dict2 函数
- 3.dctmtx 函数
一、离散傅立叶变换
1.fft/ ifft——快速傅立叶变换/反变换
- Y=fft(X)/Y=ifft(X)函数
按照基2的算法对X进行快速傅立叶变换/反变换。若X是一个矩阵,则对矩阵的每列进行快速傅立叶变换l反变换,返回Y是和X相同大小的矩阵。若X是一个多维序列,则对第一个非单独维进行快速傅立叶变换/反变换。 - Y=fft(X,n)/Y=ifft(×,n)函数
对X进行n点快速傅立叶变换/反变换。当X是一个向量,若X的长度小于n,则先对X进行补零使其长度为n;若X的长度大于n,则对X进行剪切使其长度为n,最后得到一个长度为n的向量Y。当X是一个矩阵,则利用同样方法对矩阵的每一列进行调整,然后对矩阵的每列进行快速傅立叶变换/反变换,最后得到一个n行的矩阵Y。 - Y=fft(X,n,dim)/Y=ifft(×,n,dim)
用法同上。dim用来指定进行快速离散傅立叶变换/反变换的维数。
2.fftn-进行n维快速傅里叶变换
- Y = fftn(X)运用多维快速傅里叶变换(FFT)算法,计算X的n维离散傅里叶变换值。参量X可为向量、矩阵和多维数组。
- Y = fftn(X,size)运用多维快速傅里叶变换(FFT)算法,计算X的n维离散傅里叶变换值。参量size为向量,其元素指定变换前X各维的大小。如果X的维数与size不同,则对X进行补零或截短后进行计算。
代码示例:
y = fftn(rand(50));
t = fftn(rand(50),[100 100]);
运行结果:
3.fft2-进行2维快速傅里叶变换
- Y =fft2(X)计算矩阵X的二维离散傅里叶变换矩阵Y。X和Y的维数相同。
- Y = fft2(×,m,n)计算矩阵X的二维离散傅里叶变换矩阵Y。在变换前先将X补零至m×n矩阵。如果m或n比A的维数小,则将X截短。Y的维数为m×n。
代码示例:
y = fft2(rand(10));
t = fft2(rand(50),20,20);
运行结果:
代码示例:
I=imread('rabbit.jpg');
I = rgb2gray(I);
subplot(121);imshow(I)
% 求离散傅立叶频谱
J=fftshift(fft2(I));
subplot(122);imshow(log(abs(J)),[8,10])
二、离散余弦变换
1.dct2 函数
功能: 二维离散余弦变换全页折叠
语法:
- B = dct2(A)
返回 A 的二维离散余弦变换。矩阵 B 包含离散余弦变换系数 B(k1,k2)。 - B = dct2(A,m,n) or B = dct2(A,[m n])
B = dct2(A,m,n) 和B = dct2(A,[m n]) 用 0 对矩阵 A 进行填充,使其大小为 m×n。如果 m 或 n 小于 A 的对应维度,则 dct2 在变换前对 A 进行裁切。
代码示例:
I=imread('rabbit.jpg');
I = rgb2gray(I);
subplot(121);imshow(I);
J = dct2(I);
subplot(122);imshow(log(abs(J)),[])
colormap(jet)
colorbar
J(abs(J)<10) = 0;
K = idct2(J);
figure, imshow(I)
figure, imshow(K,[0 255])
B = dct2(I,300,300);
运行结果:
2.dict2 函数
功能: DCT 反变换
格式:
- B=idct2(A)
- B=idct2(A,m,n)
- B=idct2(A,[m,n])
说明:
B=idct2(A) 计算 A 的 DCT 反变换 B ,A 与 B 的大小相同;
B=idct2(A,m,n) 和 B=idct2(A,[m,n]) 通过对 A 补 0 或剪裁,使 B 的大小为 m×n。
3.dctmtx 函数
功能: 计算 DCT 变换矩阵
格式: D=dctmtx(n)
说明:
D=dctmtx(n) 返回一个 n×n 的 DCT 变换矩阵,输出矩阵 D 为 double 类型
代码示例:
D=dctmtx(10)
运行结果:
图像的变换——fft/ ifft、fftn、fft2、dct2、dict2、dctmtx相关推荐
- fftw3/gsl/kissfft/OouraFFT库中傅里叶变换/反傅里叶变换函数和Matlab中的fft/ifft的对应关系
先分析一维度的 一.fftw_plan_dft_1d 正变换: fftw_complex *in = fftw_malloc ( sizeof ( fftw_complex ) * n ); fftw ...
- 如何使用计算机实现fft,快速傅立叶变换(FFT)的计算机实现..doc
快速傅立叶变换(FFT)的计算机实现. 信号与系统课程设计 --FFT的计算机实现 快速傅里叶变换(FFT)的计算机实现 赖智鹏 华中科技大学电气与电子工程学院0809班U200811806 Emai ...
- 快速傅立叶变换(FFT)的海面模拟
快速傅立叶变换(FFT)的海面模拟 在这篇文章中,我们将根据Tessendorf的论文[1]中的方程来实现统计波浪模型,以模拟海洋水. 使用快速傅立叶变换,我们将能够实现实时交互的帧速率.以下提供两 ...
- 图像傅立叶变换的原理和物理意义
图像傅立叶变换的原理和物理意义 图像的傅立叶变换,原始图像由N行N列构成,N必须是基2的,把这个N*N个包含图像的点称为实部,另外还需要N*N个点称为虚部,因为FFT是基于复数的,如下图所示: (// ...
- python fft ifft
文章目录 条件 代码 实例 条件 任何一个满足狄利克雷条件的函数都可以通过傅里叶基数展开. numpy和scipy中都有fft变换,且效果都是一样的. 代码 import numpy as np fr ...
- 基于vivado实现FFT/IFFT
文章目录 前言 一.基本过程 二.vivado配置 1.新建工程 2.调用DDS的IP核 2.调用FFT的IP核 三.编写Verilog程序 1.顶层文件fft.v 2.仿真文件fft_tb.v 四. ...
- 离散傅里叶变换(DFT/IDFT、FFT/IFFT)运算量的讨论
前言:关于为什么要写这个博客 最近在重新看<合成孔径雷达成像 算法与实现>这本书,看到"离散傅里叶变换记其逆变换的运算量级为"这句话,就想起当初在学<数字信号处理 ...
- 快速傅立叶变换fft_使用快速傅立叶变换fft从气候数据中提取季节性模式
快速傅立叶变换fft Meteorology students hardly experience smooth and expeditious data analysis. When comes t ...
- 【OpenCV 4开发详解】图像距离变换
本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...
最新文章
- 教程,使用YCSB测试MYSQL数据库,获取千万条测试后的数据
- 终于!这个强大的「开源图像识别系统」上线了!
- 使用spark计算文档相似度
- [译] 响应式 Web 应用(一)
- [zz]淘宝子团关于kvm 调优的分享
- java线程的内存模型_java多线程内存模型
- git gui here如何汉化_你不知道的一些在Git使用中的奇技淫巧!
- campaign read in WebUI - Fiori is correct!
- LeetCode 1223. 掷骰子模拟(DP)
- mysql begin operations_MySQL入门(七):More JOIN operations
- c++题目大坑:分数化小数
- StructureMap 作为 ASP.NET MVC 的 DI 框架的使用实例
- Paip.断点调试MYSQL存储过程跟函数的解决方案大法
- 自动刷新徐小明股市直播内容
- 阿里巴巴android图标素材网,阿里巴巴图标素材库
- 两个ROS系统进行通信(通过路由器,可上网)
- oracle使用心得(3)——PLSQL导出pde文件乱码
- INTEL 傲腾16G 的再利用
- ceph pg peering和恢复 (1)
- 51单片机:编程实现数码管显示0~999999的秒表计时,高位的0不显示。