图像配准(image registration)与图像融合(image fusion)

在ISP多帧图像降噪过程中第一步就是对采集到的n帧图像进行帧间配准,然后根据各帧的像素值进行时域噪声判断。正确的配准是准确判断时域噪声的关键,否则会因为误判造成去噪过多或去噪不够的问题。而且帧间配准出现问题会导致图像简单叠加融合时出现重影现象。图像配准是图像融合的基础操作。

根据以下参考博客内容:

https://www.cnblogs.com/carsonzhu/p/11188574.html

https://blog.csdn.net/yu253/article/details/80055295

https://blog.csdn.net/qq_28901541/article/details/88817122

https://baijiahao.baidu.com/s?id=1640538648476237607&wfr=spider&for=pc

https://blog.csdn.net/RURUD/article/details/72828812

https://blog.csdn.net/langyuewu/article/details/4166192

https://blog.csdn.net/qq_37806107/article/details/105368425

1.图像配准

1.1图像配准的概念及原理

图像配准概念:

图像配准(Image registration)就是将不同时间、不同传感器(成像设备)或不同条件下(天候、照度、摄像位置和角度等)获取的两幅或多幅图像进行匹配、叠加的过程。是使用某种方法,基于某种评估标准,将一副或多副图片(局部)最优映射到目标图片上的方法。

具体地说,对于一组图像数据集中的两幅图像,通过寻找一种空间变换把一幅图像(浮动图像,moving image)映射到另一幅图像(参考图像,fixed image)上,使得两图中对应于空间同一位置的点一一对应起来,从而达到信息融合的目的。

图像配准算法原理:

1.2图像配准的流程

任何一种配准算法都必须考虑图像的成像原理、几何变形、噪声影响、配准精度等因素。从原理上讲,配准大致可以分为以下四个步骤:

  • 特征检测。手动或者可能自动检测显著和独特的对象(闭合边界区域,边缘,轮廓,交线,角点等)。为了进一步处理,这些特征可以通过点来表示(重心,线尾,特征点),这些点称为控制点(CP)。
  • 特征匹配。建立场景图像和参考图像特征之间的相关性。使用各种各样的特征描述符,相似性度量,连同特征的空间相关性。
  • 转换模型估计。估计将感测图像和参考图像对齐的所谓映射函数的类型和参数。映射函数的参数通过特征相关性计算。
  • 图像重采样和转换。使用映射函数转换感测图像。使用合适的插值技术计算非整数坐标的图像值。

1.3图像配准评估标准

相似性测度包括:均方根距离、互信息、归一化互信息、相关系数、梯度差、图像差熵

2.图像融合

2.1 图像融合的概念

百度百科说:图像融合(Image Fusion)是指将多源信道所采集到的关于同一目标的图像数据经过图像处理和计算机技术等,最大限度的提取各自信道中的有利信息,最后综合成高质量的图像,以提高图像信息的利用率、改善计算机解译精度和可靠性、提升原始图像的空间分辨率和光谱分辨率,利于监测。

图像融合:图像融合是指将多幅图像,在经过去噪、配准等预处理后,再依据某些融合规则合成一幅图像的过程。融合图像对目标的描述更清晰和准确,更适合图像后续的处理。(多传感器图像融合(可见光图像和红外图像融合)、单一传感器多聚焦图像融合)

参考博客:https://www.cnblogs.com/libai123456/p/9622944.html

2.2 图像融合的方法及分类

参考博客:https://blog.csdn.net/m0_37933882/article/details/107613719

图像配准(image registration)与图像融合(image fusion)_第1张图片

 

2.3 简单图像融合的举例代码

clc,clear all;close all
%主函数:平移量和旋转量的获取并进行图像拼接
%读入待拼接图像A和B
A=imread('strawberries.jpg');
B=imread('trailer.jpg');
figure(1),imshow(A)
figure(2),imshow(B)
%彩色图像变灰度图像
imm=rgb2gray(A);
imm1=rgb2gray(B);
f=double(imm);
g=double(imm1);
[GM,GN]=size(g);
%取B图像的左侧1000列像素,在A图像中找对应
g1=g(:,1:1000);
for i=1:size(g,2)-1000
    d(i)=sum(sum(abs(f(:,i:i+999)-g1)./g1));
end
m=min(d);
a=find(d==m);
%确定对应区域,裁剪出公共重复区域
x=imm(:,a:size(imm,2));
y=imm1(:,1:(size(imm,2)-a+1));
%互相关方法确定平移量参数
[detal,x0,y0]=Crossspectrum(x,y);
%平移量Tx,Ty如下:
Tx=x0-100;
Ty=y0-1;
%裁剪公共部分,进行平移
x_cross=x(100:end-Tx+100,:);
y_cross=y(Tx:end,:);
%求公共区域的边界及边界角度,获得边界点位置yyy和xxx
[ed,tang]=Tedge(x_cross);
[ed1,tang1]=Tedge(y_cross);
yyy=tang(find(tang~=100));
xxx=tang1(find(tang1~=100));
%统计边界点方向最集中的点
t1=hist(reshape(yyy,1,size(yyy,1)*size(yyy,2)),360);
t2=hist(reshape(xxx,1,size(xxx,1)*size(xxx,2)),360);
%将边界点数按数量排序,找第三多的角度,第一和第二均为90和270的角度,舍去
[P1,index]=sort(t1,'descend');
[P2,index]=sort(t2,'descend');
Rotate_theta1=find(t1==P1(3));
Rotate_theta2=find(t2==P2(3));
%确定旋转参量theta
theta=Rotate_theta2-Rotate_theta1;
%彩色图像整体进行平移旋转
f_cross=A(1:end-Tx+1,:,:);
g_cross=B(Tx:end,:,:);
GT=imrotate(g_cross,-theta/2,'crop');
FT=imrotate(f_cross,theta/2,'crop');
%图像直接拼接
Whole1=[FT,GT(:,(size(g_cross,2)-a):end,:)];
%小波融合图像拼接,分通道进行融合
A_R=FT(:,a:size(GT,2),1);
A_G=FT(:,a:size(GT,2),2);
A_B=FT(:,a:size(GT,2),3);
B_R=GT(:,1:(size(GT,2)-a+1),1);
B_G=GT(:,1:(size(GT,2)-a+1),2);
B_B=GT(:,1:(size(GT,2)-a+1),3);
XFUS_R=wfusimg(A_R,B_R,'db2',3,'max','max');
XFUS_G=wfusimg(A_G,B_G,'db2',3,'max','max');
XFUS_B=wfusimg(A_B,B_B,'db2',3,'max','max');
XFUS=cat(3,XFUS_R,XFUS_G,XFUS_B);
Whole2=[FT(:,1:a-1,:),XFUS,GT(:,(size(g_cross,2)-a):end,:)];
%裁剪构成完整图像
Whole2=Whole2(1:end-1,1:end-1,:);
T_R=histeq(Whole2(:,:,1));
T_G=histeq(Whole2(:,:,2));
T_B=histeq(Whole2(:,:,3));
T=cat(3,T_R,T_G,T_B);
figure(3)
subplot(1,2,1),imshow(x_cross,[]);
subplot(1,2,2),imshow(y_cross,[]);
figure(4)
subplot(1,2,1),imshow(Whole2,[]);
subplot(1,2,2),imshow(T,[]);

图像A

图像B

图像配准(image registration)与图像融合(image fusion)_第2张图片

拼接后图像

 图像配准(image registration)与图像融合(image fusion)_第3张图片

 

 

你可能感兴趣的:(图像处理,MATLAB,人工智能)