基于互信息的图像配准_精品文档Word下载.doc

上传人:b****2 文档编号:13213544 上传时间:2022-10-08 格式:DOC 页数:17 大小:379.50KB
下载 相关 举报
基于互信息的图像配准_精品文档Word下载.doc_第1页
第1页 / 共17页
基于互信息的图像配准_精品文档Word下载.doc_第2页
第2页 / 共17页
基于互信息的图像配准_精品文档Word下载.doc_第3页
第3页 / 共17页
基于互信息的图像配准_精品文档Word下载.doc_第4页
第4页 / 共17页
基于互信息的图像配准_精品文档Word下载.doc_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

基于互信息的图像配准_精品文档Word下载.doc

《基于互信息的图像配准_精品文档Word下载.doc》由会员分享,可在线阅读,更多相关《基于互信息的图像配准_精品文档Word下载.doc(17页珍藏版)》请在冰豆网上搜索。

基于互信息的图像配准_精品文档Word下载.doc

本文使用的是基于互信息的配准方法。

2.图像配准技术

2.1图像配准技术的数学定义数字图像可以用一个二维矩阵来表示,如果用、分别表示待配准图像和参考图像在点(x,y)处的灰度值,那么图像、的配准关系可表示为:

(1)

其中f代表二维的空间几何变换函数;

g表示一维的灰度变换函数。

配准的主要任务是寻找最佳的空间变换关系f与灰度变换关系g,使两幅图像实现最佳对准。

其中,空间几何变换是灰度变换的前提,是实现精准配准的关键环节。

2.2几何变换

空间变换主要解决图像平面上像素的重新定位问题,式

(1)中的空间几何变换函数f可用空间变换模型进行描述,常用的空间变换模型有刚体变换、仿射变换、投影变换和非线性变换。

刚体变换使得一幅图像中任意两点间的距离变换到另一幅图像中后仍然保持不变;

仿射变换使得一幅图像中的直线经过变换后仍保持直线,并且平行线仍保持平行;

投影变换是从三维图像到二维平面的投影;

非线性变换把一条直线变换为一条曲线,一般用代数多项式来表示。

仿射变换是最常用的一种空间变换形式,可以实现图像的平移、旋转、按比例缩放等操作,我们在实验中使用的是此变换模型。

仿射变换可以用矩阵形式表示:

当分别取值为、、将依次对图像进行平移、旋转、按比例缩放操作。

2.3插值技术

浮动图的像素点经过空间变换后,参考图中对应点的坐标一般来说不是整数,必须通过插值方法计算该点的灰度值。

常用的插值算法有最近邻插值算法、双线性插值算法和部分体积插值算法。

为了尽可能避免基于互信息配准的局部最优问题,本文采用改进PV插值算法。

PV插值法是一种专门针对两幅图像的联合直方图的更新而设计的插值技术,它并不是真正意义上的插值方法,因为通过此方法并不能计算出反向变换点的灰度值。

PV插值法的计算过程如图1.图中的(x)为反向变换得到的一个浮点数点,其四个最近邻像素点分别为。

设参考图像为r(x),浮动图像为f(x),则它们的联合图方图函数如下。

i=1,2,3,4

1-dx

dx

dy

1-dy

2.4优化算法

2.4.1常用的优化算法有:

牛顿法、最速下降法、模拟退火法、遗传算法、单纯形法、模式搜索法、Powell法等搜索算法。

Powell法不需要对目标函数进行求导计算,具有收敛速度快、精度高、可靠性好等优点,是目前解无约束最优化问题十分有效的直接法,应用相当广泛,所以我们在实验中采用该算法。

Powell算法实现如下:

(1)给定允许误差,初始点和n个线性无关的方向,置k=1.

(2)置,,从出发,依次沿方向进行一维搜索,得到点。

再从出发,沿方向作一维搜索点,得到点。

(3)若,则停止搜索,得到点;

否则,置

返回步骤

(2).

2.4.2Powell算法中的一维搜索算法——brent方法。

Brent法思路:

开始时利用黄金分割法确定一个较小的包含极小点的不确定区间,然后利用抛物线法获得一个极小点,若此极小点落在此不确定区间,则利用该极小点继续进行二次插值;

否则放弃该点,改用黄金分割法搜索。

算法中密切关注a,b,u,v,w,x这六个点,其中a,b表示包含极小点的不确定区间;

u表示最新搜索到的极小点;

w表示上一次搜索到的极小点;

v表示上一次的w值;

x表示当前已搜到的最佳极小点。

算法实现步骤如下(设目标函数为f(x)):

(1)给定初始区间,精度要求,黄金分割系数

(2)计算,置;

计算,置;

置上一次迭代步长。

(3)计算当前区间中点,若,则停止搜索,的极小值,否则转(4)。

(4)令,若,则采用黄金分割法,转(8)。

(5)若,则采用黄金分割法,转(8)。

(6)过三点构造抛物线函数,计算

(7)若在之外,则用黄金分割法重新求极小点,转步骤(8);

若u相对于的改变量大于上一次的改变量,则转步骤(8);

若或,则用代替前面的改变量。

(8)按黄金分割法确定点,且u在区间和中长度较大的一个;

若u相对于x的改变量小于,则用代替前面的改变量。

(9)计算,按照各自的定义更新。

置,转步骤(3)。

3基于互信息的图像配准方法

3.1互信息的计算

互信息是信息理论中的一个基本概念,通常用于描述两个系统间的统计相关性,或者是一个系统中所包含的另一个系统中信息的多少,它可以用熵来描述:

(2)

其中,和分别是系统A和B的熵,是它们的联合熵,依次定义如下:

(3)

(4)

(5)

其中和分别是系统A和B完全独立时的的概率分布。

是系统A和B的联合概率分布。

令图像A和B的互信息为,将式(3),(4),(5),分别代入式

(2),即可得到图像互信息的计算公式:

3.2配准方法

首先根据两幅图像的基本情况预设一个初始参数,其中为裁剪

旋转角的图像2行的第一个索引。

为裁剪旋转角的图像2列的第一个索引,为旋转的角度,为比例因子。

然后按照给定的初始参数对图像2进行变换,并计算图像1和图像2的互信息,然后利用最优化

工具箱中的fminsearch函数在附近寻找使图像1和图像2互信息最大的

点,直至搜索到满足精度要求的参数;

最后输出配准参数。

4.图像配准的实现

4.1配准流程

首先对参考图像和浮动图像按照给定的初始点使用PV插值法统计联合直方图并计算互信息值;

然后利用POWELL算法依据最大互信息理论判断所得参数是否最优,若不是,则继续搜索较优参数,在搜索时会不断重复“空间几何变换(affine)-统计联合直方图(PV插值法)-计算互信息值-最优化判断”的过程,直至搜索到满足精度要求的参数;

输入参考图像

输入浮动图像

设置初始点和初始搜素方向

空间几何变换

计算互信息值

最优化

输出配准参数

4.2.所用到的M文件及其源代码

4.2.1.ImageRegistration.m

functionvarargout=ImageRegistration(varargin)

gui_Singleton=1;

gui_State=struct('

gui_Name'

mfilename,...

'

gui_Singleton'

gui_Singleton,...

gui_OpeningFcn'

@ImageRegistration_OpeningFcn,...

gui_OutputFcn'

@ImageRegistration_OutputFcn,...

gui_LayoutFcn'

[],...

gui_Callback'

[]);

ifnargin&

&

ischar(varargin{1})

gui_State.gui_Callback=str2func(varargin{1});

end

ifnargout

[varargout{1:

nargout}]=gui_mainfcn(gui_State,varargin{:

});

else

gui_mainfcn(gui_State,varargin{:

addpath(pwd);

functionImageRegistration_OpeningFcn(hObject,eventdata,handles,varargin)

handles.output=hObject;

guidata(hObject,handles);

functionvarargout=ImageRegistration_OutputFcn(hObject,eventdata,handles)

varargout{1}=handles.output;

functionpushbutton1_Callback(hObject,eventdata,handles)

globalI;

%%%调用OpenImage.m读入参考图像并获取文件名、图像大小%%%

[filename,pathname]=uigetfile({'

*.jpg'

;

'

*.bmp'

},'

Ñ

¡

Ô

ñ

Í

¼

Æ

¬

);

str=[pathnamefilename];

I=imread(str);

axes(handles.axes1);

imshow(I);

handles.data=I;

guidata(hObject,handles);

figure

(1);

imshow(handles.data);

functionpushbutton3_Callback(hObject,eventdata,handles)

handles.Old_I=handles.data;

handles.Old_J=handles.data2;

[I,J]=GLPF(handles);

handles.data2=J;

tic

RegistrationParameters=Powell(handles);

toc

ElapsedTime=toc;

handles.RegistrationParameters=RegistrationParameters;

y=RegistrationParameters

(1);

x=RegistrationParameters

(2);

ang=RegistrationParameters(3);

MI_Value=R

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1