1 简介

快速傅立叶变换(FFT)改进了离散傅立叶变换(DFT)的计算过程,被广泛应用于数字图像的实时处理中.在相位相关技术的基础上,提出了一种新的图像配准算法,即在需要配准的两幅图像中心选取相同区域大小,进行傅里叶梅林变换,变换后是一个二维脉冲信号,由此而得到图像配准参数.实验结果表明了该算法的有效性和可靠性.​

2 部分代码

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;case 1,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');case 0,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');
end
% Hints: contents = get(hObject,'String') returns fft_dct_pop contents as cell array
%       contents{get(hObject,'Value')} returns selected item from fft_dct_pop% --- Executes during object creation, after setting all properties.
function fft_dct_pop_CreateFcn(hObject, eventdata, handles)
% hObject   handle to fft_dct_pop (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles   empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');
end% --- Executes during object creation, after setting all properties.
function close_button_CreateFcn(hObject, eventdata, handles)
% hObject   handle to close_button (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles   empty - handles not created until after all CreateFcns called% --- Executes during object deletion, before destroying properties.
function close_button_DeleteFcn(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)% --- If Enable == 'on', executes on mouse press in 5 pixel border.
% --- Otherwise, executes on mouse press in 5 pixel border or over close_button.
function close_button_ButtonDownFcn(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)% --- Executes on key press over close_button with no controls selected.
function close_button_KeyPressFcn(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)

3 仿真结果

4 参考文献

[1]陈芳民, 李馨迟, 付明,等. 基于MATLAB的傅里叶梅林变换算法图像拼接的实现[J]. 首都师范大学学报:自然科学版, 2009(S1):4.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【图像几何】基于傅里叶+DCT图像变换matlab代码相关推荐

  1. 【图像分割】基于计算机视觉实现视网膜图像中的血管分割附matlab代码

    1 简介 视网膜图像里的血管是可以被观察到的一类微血管,并且它是无创伤的,而其分布位置也属于深度部位[5].其分布.结构和形态特征的变化能在一定程度上反映病变的程度.而白血病.糖尿病以及高血压等疾病都 ...

  2. 多通道LMMSE图像超分辨复原方法研究-附Matlab代码

    ⭕⭕ 目 录 ⭕⭕ ✳️ 一.引言 ✳️ 二.多通道LMMSE复原算法 ✳️ 三.实验验证 ✳️ 四.参考文献 ✳️ 五.Matlab程序获取与验证 ✳️ 一.引言 数字图像处理又称为计算机图像处理, ...

  3. 【图像分割】基于收缩系数的粒子群混合引力搜索算法多级图像阈值分割算法研究附matlab代码

  4. matlab 图像 放大缩小,图像的放大与缩小(MATLAB 代码)

    首先第一种: function I=ImageZoom(I1,x,y) %功能:实现图像的任意倍数缩放 %x---水平缩放系数 %y---竖直缩放系数 if length(size(I1))>2 ...

  5. ​【故障诊断分析】基于 FFT轴承故障诊断matlab代码

    1 简介 快速傅里叶变换( FFT) 是 1965 年 J W Cooley 和 J W Tukey 巧妙地利用 WN 因子的周期性和对称性,构造了离散傅里叶变换( DFT) 的快速算法,即快速离散傅 ...

  6. 周期矩形波的傅里叶级数展开(Matlab代码实现)

           目录

  7. python图像融合算法_图像融合质量评价方法的python代码实现——MS-SSIM

    图像融合质量评价方法的python代码实现--MS-SSIM 图像融合质量评价方法的python代码实现--MS-SSIM 文章目录 1 前言 2 MS-SSIM介绍 2 MS-SSIM的代码 2.1 ...

  8. 【图像隐藏】基于DCT、DWT、LHA、LSB的数字图像信息隐藏系统含各类攻击和性能参数附matlab代码

    1 内容介绍 1.1 课题研究的目的和意义 自二十世纪九十年代以来,网络在我们的生活中得到了快速的普及,网络几乎存 在于家家户户中,特别是一些用于交流的软件自诞生以来更是为我们的生活都带来了 极大的便 ...

  9. 【图像隐藏】基于混合 DWT-HD-SVD 的数字图像水印方法技术附matlab代码

    1 内容介绍 文章提出一种基于离散小波变换(DWT),Hessenberg分解(HD)和奇异值分解(SVD)的图像水印方法.在嵌入过程中,对原始载体图像进行多级DWT分解,并将得出的子带系数作为HD的 ...

最新文章

  1. 基于onnx的人脸识别
  2. AI大觉醒:图灵奖得主Bengio称AI将产生意识,未来机器学习核心是注意力机制
  3. poj3517(约瑟夫环问题)
  4. CSW:闪电网络是一种证券,BCH避开了它
  5. JSON.stringify()还可以这么用
  6. (6) ebj学习:ejb使用jpa注解
  7. java里冒泡排序编程案例_冒泡排序法-java案例详解
  8. ci/cd heroku_在Heroku上部署Dash或Flask Web应用程序。 简易CI / CD。
  9. 标准模板库(STL)学习指南之List容器
  10. SpringCloud局部过滤器自定义
  11. mfc多文档获取版本号_管理Microsoft Office文档—基于SOLIDWORKS PDM
  12. ASP操作XML文件的主要方法和实现
  13. 半导体中的电子运动 有效质量
  14. 计算机位数怎么看win10,查看Windows10系统是32位还是64位的三种方法
  15. 伟大的数学思想家—黎曼
  16. c语言kill暂停和恢复进程,Linux暂停和恢复进程
  17. 今日巨大福利,1元体验京东云服务器,附云服务器用法的完整教程
  18. html css3不拉伸图片显示效果,类似淘宝的
  19. Incomplete reply from server
  20. 菜鸟前端开发之正则校验

热门文章

  1. logging日志写入文件
  2. 微服务商城系统(十) Spring Security Oauth2 + JWT 用户认证
  3. CTFshow命令执行29-123
  4. 整理了一下oxidized+mysql+gitlab,感觉很好用,做个记录
  5. python打开是什么样子的图片_黑洞6问:黑洞内部是什么样子?黑洞图片发布,理论和实测的碰撞...
  6. python是黑客攻防第一语言么_为什么选择python编程语言入门黑客攻防 给你几个理由!...
  7. 计算机二级vb选择题分值,计算机二级VB考试的考试分值和考试题型剖析及解题技巧...
  8. 国籍SQL—— 看自己需求 ( 港澳台 也独立出来了)
  9. 姬魔恋战纪服务器维护,《姬魔恋战纪》11月7日更新公告
  10. 【IT微小说】CISO琳达的一天