一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【图像配准】基于matlab互信息图像配准【含Matlab源码 1210期】

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

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

二、互信息配准简介

1 互信息配准流程
信息论中将互信息定义为信息之间的关系,可以表示为两个随机变量之间统计相关性的度量,由此可以得出图像互信息的计算方法。作为图像多模态配准中的度量,图像互信息利用对图像灰度值的统计数据形成单个图像的灰度值概率函数和两个图像相似部分对应的灰度值联合概率函数,以此来衡量两幅图像的相关程度。在图像配准的过程中,认为两幅图像的相关性最大时对应的互信息也最大。基于互信息的图像配准最早在1995年被用于医学图像配准中,此后研究人员对于互信息的配准方法做了大量研究。

对于以互信息作为相似性测度的图像配准来说,目标就是寻找一个空间变换模型,使得两幅图像中的对应点相互对齐,以便进行比较或融合。基于互信息的图像配准流程如图1所示。

图1 基于互信息的图像配准流程图
它的流程可以概括为:首先提取两幅图像的特征空间信息,计算紫外图像与可见光图像之间的互信息,然后通过优化搜索算法对空间变换矩阵进行更新迭代,从中找出使两幅图像相似性测度互信息最大的最优变换矩阵T,最后根据变换矩阵实现对紫外图像的空间变换,使其在空间上与可见光图像配准,达到图像融合的要求。

2 图像互信息相关理论
基于图像灰度信息的相似性测度是一种通过统计和概率估计的方法对图像进行匹配的表示相似程度的参数。常见的图像灰度信息相似性测度包括互相关法、均方差和法及互信息法等。在多模态图像中最常用的为互信息法,互信息法是一种不需要对源图像做预处理的方法,被广泛应用于医学图像配准中。互信息法对于各种模式的图像配准都具有有效性,鲁棒性及可靠性较高。本文采用基于互信息的相似性测度来提高紫外与可见光图像的匹配精度,下面介绍一些图像互信息的基本概念。
1)熵
在信息论中,熵表示随机变量的不确定性。假设随机事件xi出现的概率为pi,则信息量为:I(xi)=-log 2pi,单位为bit。而信息量的数学期望为信源的平均信息量,即信源的信息熵。
假设一个随机变量X内存在N个随机事件X={x1,x2,…,xn},随机事件出现的概率集合为P={p1,p2,…,pn},也就是随机变量X的概率密度函数为p(x),则随机变量X的熵可以定义为

此外联合熵表示两个随机变量的相关性。联合熵越小表示这两个随机变量越相关,若两个随机变量越不相关,它们的联合熵会越大。假设pXY(x,y)是两个随机变量X,Y的联合概率密度函数,则联合熵的数学定义为

2)图像互信息
图像互信息可以度量两幅图像的统计独立程度,基于前面熵和联合熵的定义,给定紫外与可见光图像UV和V,他们的互信息可以定义为



式(3)中,MI(V,UV)为可见光与紫外光图像的互信息,H(V),H(UV)和H(V,UV)分别表示可见光图像的熵、紫外光图像的熵、可见光与紫外光图像的联合熵。式(4)中,p(v,uv)表示可见光与紫外光图像的联合概率密度函数,p(v)和p(uv)分别表示可见光图像的概率密度函数和紫外光图像的概率密度函数。根据互信息的定义,对于可见光与紫外光的互信息计算流程如图2所示。

图2 紫外光与可见光图像互信息计算流程
可见光图像和紫外光图像的像素灰度值分别表示为LV(i,j),LUV(i,j):

其中,i=1,2,…,m,j=1,2,…,n,其中i,j分别表示像素的横纵坐标,m,n分别表示图像的宽高像素数。先将可见光图像和紫外图像对应坐标的像素值整合成一个二维向量(LV(i,j),LUV(i,j)),i=1,2,…,m,j=1,2,…,n。然后通过直方图估计法估计出两个图像的联合概率密度p(v,uv)和边缘概率密度p(v)=∑p(v,uv),p(uv)=∑p(v,uv)。最后,根据式(4)计算出两幅图像的互信息。

三、部分源代码

close all
clear allticx0=[50; 50; -15; 0.5]; % Initial points, [X, Y, angle, scaling] % Select them as close to the matching points as possible% by guessing; otherwize, it will fail.[x, fval]=fminsearch(@image_registr_MI,x0) % Optimization using 'fminsearch'%
% Display
%
load imageIM1=double(IM1);
IM2=double(IM2);
IM2=imresize(IM2, x(4), 'bilinear');
J=imrotate(double(IM2), x(3),'bilinear'); %rotated cropped IMAGE2
function f=image_registr_MI(x)load imageIM1=double(IM1);
IM2=double(IM2);
IM2=imresize(IM2, x(4), 'bilinear');
J=imrotate(double(IM2), x(3),'bilinear'); %rotated cropped IMAGE2if n1>n3-x(1)/2f=1000;message=strvcat('The scaling factor is too small.', 'Press Ctrl+C to stop.',...'Increase x0(4) and restart.');disp('Press Ctrl+C to stop.')Errordlg(message)pause;
elseif x(1)>n3-n1x(1)=n3-n1-1;IM1(1:n1, 1:n2)=255;endif x(2)>n4-n2x(2)=n4-n2-1;IM1(1:n1, 1:n2)=255;endif x(1)<0x(1)=0;IM1(1:n1, 1:n2)=255;endif x(2)<0x(2)=0;IM1(1:n1, 1:n2)=255;endxt=1:n1;yt=1:n2;xx=round(xt+x(1));yy=round(yt+x(2));IM2=round(J(xx, yy)); % selecting part of IMAGE2 matching the size of IMAHE1rows=size(IM1,1);cols=size(IM2,2);N=256;h=zeros(N,N);for ii=1:rows;    %  col for jj=1:cols;   %   rowsh(IM1(ii,jj)+1,IM2(ii,jj)+1)= h(IM1(ii,jj)+1,IM2(ii,jj)+1)+1;endend[r,c] = size(h);b= h./(r*c); % normalized joint histogramy_marg=sum(b); %sum of the rows of normalized joint histogramx_marg=sum(b');%sum of columns of normalized joint histogranHy=0;for i=1:c;    %  colif( y_marg(i)==0 )%do nothingelseHy = Hy + -(y_marg(i)*(log2(y_marg(i)))); %marginal entropy for image 1endendHx=0;for i=1:r;    %rowsif( x_marg(i)==0 )%do nothingelseHx = Hx + -(x_marg(i)*(log2(x_marg(i)))); %marginal entropy for image 2end   endh_xy = -sum(sum(b.*(log2(b+(b==0))))); % joint entropyf=-(Hx+Hy-h_xy);% Mutual information%x
end

四、运行结果


五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]侯思祖,陈宇,刘雅婷.基于互信息的紫外成像仪中图像配准研究[J].半导体光电. 2020,41(04)

【图像配准】基于matlab互信息图像配准【含Matlab源码 1210期】相关推荐

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

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

  2. 【Matlab图像加密】正交拉丁方置乱算法图像加解密【含GUI源码 182期】

    一.代码运行视频(哔哩哔哩) [Matlab图像加密]正交拉丁方置乱算法图像加解密[含GUI源码 182期] 二.matlab版本及参考文献 一.代码运行视频(哔哩哔哩) [Matlab图像处理]自动 ...

  3. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

  4. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  5. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  6. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  7. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  8. 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...

  9. 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...

  10. 【Matlab语音加密】语音信号加密解密(带面板)【含GUI源码 181期】

    一.代码运行视频(哔哩哔哩) [Matlab语音加密]语音信号加密解密(带面板)[含GUI源码 181期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆 ...

最新文章

  1. 汤家凤高等数学基础手写笔记-空间解析几何
  2. Java操作shell脚本
  3. mysql为什么不驼峰_为什么不用驼峰命名创建表名和字段?
  4. Spring Boot笔记-banner.txt的使用
  5. 用JavaScript实现一个Timeline
  6. 0224 py晚自习 udp通讯器 小明与牛牛版
  7. 【CAS】Implementing generic double-word compare and swap for x86/x86-64
  8. C# datetime 格式化
  9. [IE兼容性] Table 之边框
  10. 写一个控制gpio的驱动
  11. 树链剖分之点剖分(点分治)讲解
  12. live555 RTSP服务器建立及消息处理流程
  13. 【ESAPI】WEB安全ESAPI使用
  14. win10 eclipse适配笔记本4K屏幕
  15. 学渣的刷题之旅 leetcode刷题 9. 回文数
  16. macd的python代码同花顺_超牛MACD(代编写程序化交易模型)-同花顺公式 -程序化交易(CXH99.COM)...
  17. 江苏大学计算机学院姚奕如,2017年江苏教学成果奖一等奖项目.DOC
  18. 匿名管道、命名管道--Linux
  19. Serverless Knative Serving弹性扩缩容实践整理
  20. 模拟登录正方软件制作的教务系统

热门文章

  1. 1,python基础入门
  2. ASP.NET Core性能改进【转载】
  3. 【openjudge 计算概论(A)】[函数递归练习(3)]
  4. 第二节 数值、字符与字符串
  5. OpenCV人工智能图像处理学习笔记 第5章 计算机视觉加强之图像美化
  6. 2020-10-19
  7. 20200608每日一句
  8. 进程以及状态 进程的创建
  9. 进程和线程的主要区别
  10. WinEdt 参考文献格式