一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【图像几何】基于matlab GUI傅立叶+DCT图像变换【含Matlab源码 844期】

获取代码方式2:
通过紫极神光博客主页开通CSDN会员,凭支付凭证,私信博主,可获得此代码。

获取代码方式3:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:开通CSDN会员,仅只能免费获得1份代码(有效期为开通日起,三天内有效);
订阅紫极神光博客付费专栏,可免费获得2份代码(有效期为订阅日起,三天内有效);

二、傅立叶+DCT简介

FFT(Fast Fourier transform):快速傅里叶变换,是DFT的工程化实现方法。
DFT直接求解太过于复杂,FFT方法根据DFT求解过程中旋转因子的性质并引入分治算法思想,大大简化计算过程,被广泛应用在频谱分析的工程实践中,如matlab,C,C++,CUDA等底层实现

1 DFT简介
频谱分析是信号处理中的重要环节,从傅里叶变换FT,到拉普拉斯变换LT,离散时间傅里叶变换DTFT,Z变换ZT,到我们所讲的离散傅里叶变换DFT(他们之间的联系和区别见我的其他博客)。
相比于其他变换,DFT被广泛应用的原因是其输入的时域信号是离散的,输出的频域结果也是离散的。这就极大方便了我们进行基于计算机的频谱计算,存储和分析,没办法数字信号处理是大趋势。
​ DFT变换的公式为:


但为了分析方便,在FFT的计算过程中,我们依然使用k = 0 ∼ N − 1 k = 0 \sim N-1k=0∼N−1的选取策略。也即,如下:

2 旋转因子WWW的性质

3 FFT蝶形计算证明






4 FFT计算过程

三、部分源代码

function varargout = fushidctbianhuan(varargin)
% FUSHIDCTBIANHUAN M-file for fushidctbianhuan.fig
%      FUSHIDCTBIANHUAN, by itself, creates a new FUSHIDCTBIANHUAN or raises the existing
%      singleton*.
%
%      H = FUSHIDCTBIANHUAN returns the handle to a new FUSHIDCTBIANHUAN or the handle to
%      the existing singleton*.
%
%      FUSHIDCTBIANHUAN('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in FUSHIDCTBIANHUAN.M with the given input arguments.
%
%      FUSHIDCTBIANHUAN('Property','Value',...) creates a new FUSHIDCTBIANHUAN or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before fushidctbianhuan_OpeningFunction gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to fushidctbianhuan_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help fushidctbianhuan% Last Modified by GUIDE v2.5 06-Apr-2014 17:16:14% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @fushidctbianhuan_OpeningFcn, ...'gui_OutputFcn',  @fushidctbianhuan_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT% --- Executes just before fushidctbianhuan is made visible.
function fushidctbianhuan_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to fushidctbianhuan (see VARARGIN)
axes(handles.axes1);
img=imread('lena.bmp');
imshow(img);
axes(handles.axes2);
imgf=double(img);
imgs=fftshift(fft2(imgf));
imshow(log(1+abs(imgs)),[]);
set(handles.dct_radiobutton,'value',0);
set(handles.fft_radiobutton,'value',1);
% Choose default command line output for fushidctbianhuan
handles.output = hObject;% Update handles structure
guidata(hObject, handles);% UIWAIT makes fushidctbianhuan wait for user response (see UIRESUME)
% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.
function varargout = fushidctbianhuan_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Get default command line output from handles structure
varargout{1} = handles.output;% --- Executes on button press in fft_radiobutton.
function fft_radiobutton_Callback(hObject, eventdata, handles)
% hObject    handle to fft_radiobutton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
set(handles.dct_radiobutton,'value',0);
set(handles.fft_radiobutton,'value',1);
img = getimage(handles.axes1);
axes(handles.axes2);
imgf=double(img);
imgs=fftshift(fft2(imgf));
imshow(log(1+abs(imgs)),[]);set(handles.text2,'string','傅立叶变换谱');set(handles.text2,'fontsize',12);set(handles.text2,'fontname','宋体');set(handles.text2,'fontweight','bold');% Hint: get(hObject,'Value') returns toggle state of fft_radiobutton% --- Executes on button press in dct_radiobutton.
function dct_radiobutton_Callback(hObject, eventdata, handles)
% hObject    handle to dct_radiobutton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
set(handles.dct_radiobutton,'value',1);
set(handles.fft_radiobutton,'value',0);
img = getimage(handles.axes1);
axes(handles.axes2);
imgd=img;
imgs=dct2(imgd);
imshow(log(abs(imgs)));
set(handles.text2,'string','DCT变换系数');
set(handles.text2,'fontsize',12);
set(handles.text2,'fontname','宋体');
set(handles.text2,'fontweight','bold');
% Hint: get(hObject,'Value') returns toggle state of dct_radiobutton% --- Executes on button press in close_button.
function close_button_Callback(hObject, eventdata, handles)
% hObject    handle to close_button (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
close(fushidctbianhuan);% --- Executes on selection change in fft_dct_pop.
function fft_dct_pop_Callback(hObject, eventdata, handles)
% hObject    handle to fft_dct_pop (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
val=get(hObject,'value');
str=get(hObject,'string');
switch str{val};case 'lena'lena = [];lena = imread('lena.bmp');img = lena;case 'Saturn',saturn = [];load imdemos saturnimg = saturn;case 'Tire',tire = [];load imdemos tireimg = tire;case 'Pout',pout = [];load imdemos poutimg = pout;case 'Trees',trees = [];load imdemos treesimg = trees;case 'Quarter',quarter = [];load imdemos quarterimg = quarter;case 'Circuit',circuit = [];load imdemos circuitimg = circuit;case 'Rice',rice = [];load imdemos riceimg = rice;case 'Fingerprint'fingerprint = [];fingerprint = imread('fingerprint.jpg');img = fingerprint;case 'Licenceplate'licenceplate = [];licenceplate = imread('licenceplate.jpg');img = licenceplate;case 'Haze'haze = [];haze = imread('haze.jpg');img = haze;case 'Cloudy'cloudy = [];cloudy = imread('cloudy.tif');img = cloudy;
end
axes(handles.axes1);
imshow(img);
control=get(handles.fft_radiobutton,'value');
switch control;

四、运行结果

五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]陈浩,方勇,朱大洲,王成,陈子龙.基于蚁群算法的玉米植株热红外图像边缘检测[J].农机化研究. 2015,37(06)

【图像几何】基于matlab GUI傅立叶+DCT图像变换【含Matlab源码 844期】相关推荐

  1. 【光学】基于matlab GUI杨氏双缝干涉【含Matlab源码 001期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI杨氏双缝干涉[含Matlab源码 001期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...

  2. 【人脸识别】基于matlab GUI人数统计【含Matlab源码 2121期】

    ⛄一.人数统计简介(附课程作业报告) 1 课题背景 本课题为基于matlab的人数统计系统.近年来,很多行业对人流信息有极大的需求,如汽车公交站,地铁站台,商场出入口等.通过人数统计系统可以方便.可靠 ...

  3. 基于SSM的仓库管理系统(含完整源码+论文)

    后端框架:SSM 数据库:MySQL 开发工具:IDEA/Eclipse 系统介绍:本系统是基于SSM框架进行设计,MySQL作为底层数据库,前端采用bootstrap 模块大致介绍:包括库存管理.出 ...

  4. 【条形码识别】基于matlab GUI二维条形码识别【含Matlab源码 607期】

    ⛄一.二维条形码识别简介 采用数字图像处理技术对二维条码进行识别, 是二维条形码识别中较常用的方法, 它在处理污损的条形码方面有光电识别方法无法比拟的优势.另外图像式识别方法对识别角度的要求没有光电识 ...

  5. 【心电信号】基于matlab GUI心电信号预处理【含Matlab源码 938期】

    ⛄一.心电信号预处理方法简介 理论知识参考文献:心电信号预处理方法研究 ⛄二.部分源代码 function varargout = kaishi(varargin) gui_Singleton = 1 ...

  6. matlab svm 语音识别,【情感识别】基于matlab支持向量机(SVM)的语音情感识别【含Matlab源码 543期】...

    一.简介 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数 ...

  7. 【图像去噪】基于matlab GUI butterworth+中值+维纳+小波图像去噪【含Matlab源码 520期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab GUI butterworth+中值+维纳+小波图像去噪[含Matlab源码 520期] 获取代码方式2: ...

  8. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  9. 【芯片识别】基于matlab GUI形态学PCB板芯片识别【含Matlab源码 1820期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[芯片识别]基于matlab GUI形态学 PCB板芯片识别[含Matlab源码 1820期] 点击上面蓝色字体,直接付费下载,即可. 获 ...

  10. 【大米粒计数】基于matlab GUI形态学大米粒颗粒识别【含Matlab源码 915期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[大米粒计数]基于matlab GUI形态学大米粒颗粒识别[含Matlab源码 915期] (https://download.csdn. ...

最新文章

  1. Java的List和Json转换以及StringRedisTemplate往redis存泛型对象
  2. 登高自卑 | 我的PyTorch入门与实践笔记
  3. Ubuntu12.04版本安装arm-linux-gcc 4.3.3
  4. STL札记3-2(hashtable关联容器set、map)
  5. linux 查看可执行文件动态链接库相关信息(转)
  6. C++ vector库学习笔记
  7. java 日历工具_java中强大的时间处理工具:Calendar类(日历类)
  8. oracle rac 创建ocr,Oracle rac 11g在线添加ocr,votedisk
  9. 开源GIS(十二)——openlayers中加载切片原理
  10. django+xadmin在线教育平台(四)
  11. 微信浏览器禁止页面下拉查看网址(不影响页面内部scroll)
  12. 微信云托管云调用使用指南
  13. 解决word里鼠标滚动速度慢
  14. 计算机怎么通过网线共享网络,怎样用一根网线联接两台电脑实现网络共享?
  15. android开发日历,Android日历开发详解
  16. JSCRIPT如何调试
  17. goinception审核规则
  18. 4个顶级CAD制图软件,对照职业入手哦~
  19. unity触发时播放音效
  20. 面向对象_猫狗案例加入跳高功能代码实现

热门文章

  1. 安装 composer 并启动 yii2 项目
  2. [knowledge][lisp] lisp与AI
  3. Alpha,Beta,RC,RTM,EVAL,CTP,OEM,RTL,VOL
  4. 精通git中文版 (连载四)
  5. Python3入门机器学习经典算法与应用 第3章 Jupyter Notebook基本用法 学习笔记
  6. word创建Pdf时嵌入字体 Creating a PDF with Embedded Fonts for MS Word
  7. 190710每日一句
  8. 190702每日一句 孤独之前是迷茫,孤独之后是成长
  9. atitit.错误:找不到或无法加载主类 的解决 v4 qa15.doc
  10. paip.函数式编程方法概述以及总结