【图像处理】什么是图像配准?

article/2025/8/5 1:46:53

一、图像配准概述

        图像配准是叠加两个或多个来自不同来源、在不同时间和角度拍摄的图像的过程。图像配准过程是一种自动或手动操作,它试图发现两张照片之间的匹配点并在空间上对齐它们以最小化所需的误差,即两幅图像之间的统一邻近度测量。医学、遥感和计算机视觉都使用图像配准。

        一旦在图片之间建立了对应关系,通常可以简单地调节或处理对两张或多张照片之间的联系的研究。建立这种相关性的过程称为图像配准。       

可以说,图像配准是计算空间变换的过程,它将一组图像与一个共同的观察参考框架对齐,通常是一组图像中的一个。配准是任何图像分析或理解任务中必须组合不同数据源的关键步骤。

二、图像配准的使用

        图像配准可以通过两种方式使用:

        Image to Image Registration:将两张或多张图片对齐以整合或融合表示相同对象的匹配像素。

        Image to Map Registration:在这一步中,输入图像被扭曲以匹配基础图像的地图信息,同时保持其原始空间分辨率。

        在医学和卫星摄影中,它经常用于对齐来自不同相机来源的图片。图像配准是数码相机用来将附近的图片对齐并链接成单个全景图像的技术。

三、图像配准的步骤
        每种图像配准方法都必须经过四个主要步骤才能进行图像对齐。

        特征检测:参考图像和感知图像中检测显着和独特的对象(封闭边界区域、边缘、轮廓、线交叉点、角等)。

        特征匹配:它建立了参考图像和感知图像中的特征之间的相关性。匹配方法是基于图片的内容或控制点集的符号描述。

        估计变换模型:计算所谓的映射函数的参数和种类,将检测到的图片与参考图像对齐。

        图像重采样和变换:使用映射函数改变检测到的图像。

图像配准方法主要分为两类:基于区域的方法和基于特征的方法。当照片中缺乏重要特征并且通过灰度/颜色而不是局部形式和结构给出区分信息时,优选基于区域的方法。 

        当图片强度提供更多的局部结构信息时,使用基于特征的匹配算法。在这些过程中使用由特征提取技术产生的图像特征。但这两种分类可以进一步分为各种方法。让我们来看看这些分类。

1、基于像素的方法

        对于配准,在此过程中采用了互相关统计方法。它经常用于模板匹配或模式识别,其中涉及查找图像中模板或模式的位置和方向。互相关是相似性或匹配度量的度量。

        例如,二维归一化互相关函数评估模板(参考图像)和图像的每个平移的相似性,其中模板与图像相比很小。 

        如果模板适合图像,则互相关将达到峰值。由于该度量可能受局部图像强度的影响,因此应调整互相关。

        相关方法的主要缺点是相似性度量最大值的平坦度(由于图片的自相似性)和高处理复杂性。最大值可以通过预处理或通过应用边缘或矢量相关来成功锐化。

2、点映射法

        在基于点的匹配算法中,灰度值不用于描述匹配的实体。它采用从特征提取算法/过程产生的图片特征。 

        特征提取的根本目标是从输入的原始数据中提取大量信息,过滤掉冗余信息,即过滤掉不再需要的信息。 

        选择仅在两张照片中检测到并且更能容忍局部失真的特征。这些特征影响合适变换的计算。因此,必须发现大量特征才能执行计算。 

        在检测到每个图像中的特征之后,它们必须被匹配。这是匹配两张具有未知错位的照片的最常用方法。 

        点匹配的控制点在此策略中至关重要。拐角、相交线、等高线上的局部最大曲率点、具有局部最大曲率的窗口中心以及封闭边界区域的重心都是控制点的示例。 

        点映射方法分为三个阶段,分别如下:

        可以计算的图像特征。

        数据图像的特征点。

        空间映射。

        基于特征的技术的缺点是窗口内容的特殊性。由于其非显着性,包含缺乏关键信息的平滑区域的窗口很可能被错误地与参考图片中的其他平滑区域匹配。 配准特征应优选地在图片的离散区域中被识别。

3、基于轮廓的图像配准

        在该策略中,使用强大的统计特征来匹配图片特征点。彩色图片分割用于从图像中提取感兴趣的区域。

        为了产生图像的轮廓,计算给定颜色集合的平均值。然后在分割过程中将图像中的每个 RGB 像素分类为具有特定范围内的颜色或不具有特定范围内的颜色。此外,欧几里得距离是确定相似度所必需的。 

        点的轨迹是一个半径等于阈值的球体,位于球体内部或表面的每个点都满足规定的颜色要求。通过用黑白对图像中的这两组点进行编码,生成了一个二值分割图像。 

        高斯滤波器用于消除分割过程后的噪声。阈值模糊图像,然后获得图像的轮廓。

        基于轮廓的图像配准方法的准确性是不错,但局限性是它很慢。

4、使用互信息的多模态图像配准

        多光谱/多感官图片的配准是一项艰巨的任务。一般来说,这样的图片具有不同的灰度属性,基于区域相关性的基本方法不容易使用。 

        发现即使直方图发生变化,图像的熵也保持不变。即使在随机打乱图像的像素之后,图像的熵也保持不变。自然照片的模糊性也较小。 

        在逼真的图像中,像素的值很可能与它的某些相邻像素的值非常接近。结果,这种依赖降低了整体熵。

        当图片的分辨率较差或重叠区域较窄时,互信息会导致配准错误。

5、频域图像配准

        相关定理在此过程中很重要,因为傅里叶函数在频谱的每个频率处包含图像的实部和虚部的两个值。 

        通过计算函数的倒数,我们得到了一个脉冲函数,除了位移之外,它在任何地方都基本上为零,这是最佳配准两张图片所必需的。上述方法用于配准只有位移的图片。

        应该强调的是,必须在频域中使用某种类型的插值。

6、使用遗传算法进行图像配准

        遗传算法(GA) 建立在进化的自然概念之上,这表明在不断变化的环境条件下,多样性有助于种群的生存。GA 是具有内在并行性的迭代方法。 

        他们以染色体的形式记录了一组候选解,通常是二进制符号“0”和“1”。可以随机选择初始种群。 

        适合的候选者,定义为适应度值大于给定阈值的那些,将被选择在下一代进行复制。使用称为“交叉”的遗传繁殖程序合并选定的候选人。交叉算子交换染色体片段以在下一代中创造出更适合的优秀候选者。 

        在下一代,整个人口都被重新评估。重复该操作直到满足终止要求。终止标准可能包括发现可接受的近似解、达到一定数量的代数或解收敛。 

        对于基于数字矢量地图的卫星图像,使用遗传算法的自动配准已被证明是特别有效和值得信赖的。

四、图像配准的应用

        在医学领域,多模式 MRI-MEG 联合配准。在大脑成像的轴向视图中,顶部的黄点表示解剖标记或基准点(解剖信息)。底部:粉红色的点表示 MEG 传感器的位置,而绿点表示头皮脑电图传感器的位置。功能信息包含在这些 MEG 和 EEG 数据中,底部图像描绘了共同配准的大脑图像。

   在摄影领域,卫星使用点映射方法进行图像配准。

五、使用 OpenCV 进行图像配准

        查看下面两张图片,使用opencv进行图像配准。

import numpy as np
import imutils
import cv2
#from google.colab.patches import cv2_imshow# 读取图像,并灰度化
img_align = cv2.imread("image-1.jpeg")
img_temp = cv2.imread("image.jpeg")
img1 = cv2.cvtColor(img_align, cv2.COLOR_BGR2GRAY)
img2 = cv2.cvtColor(img_temp, cv2.COLOR_BGR2GRAY)
height, width = img2.shape# 获取关键点和描述符,用于匹配模板文件
orb_detector = cv2.ORB_create(5000)
kp1, d1 = orb_detector.detectAndCompute(img1, None)
kp2, d2 = orb_detector.detectAndCompute(img2, None)
matcher = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck = True)
matches = matcher.match(d1, d2)#matches.sorted(key = lambda x: x.distance)
matches = matches[:int(len(matches)*0.9)]
no_of_matches = len(matches)
p1 = np.zeros((no_of_matches, 2))
p2 = np.zeros((no_of_matches, 2))
for i in range(len(matches)):p1[i, :] = kp1[matches[i].queryIdx].ptp2[i, :] = kp2[matches[i].trainIdx].pt# 为结果图像的验证创建单应性
homography, mask = cv2.findHomography(p1, p2, cv2.RANSAC)# 配准图像
transformed_img = cv2.warpPerspective(img_align, homography, (width, height))
matchedVis =cv2.drawMatches(img1, kp1, img2, kp2, matches, None)
matchedVis = imutils.resize(matchedVis, width=1000)
cv2.imwrite('C:\\Users\\xiaomao\\Desktop\\123.jpg', matchedVis)
cv2.waitKey(0)

 配准结果参考图像。从输入图像中选择了总共 5000 个像素,这些像素要从生成输出图像的模板图像中进行匹配。 

 图像配准是集成、融合和评估来自众多传感器(来源)的数据的必要步骤。它在医学科学、计算机视觉和遥感领域有着广泛的应用。 

        具有复杂非线性失真的图像配准、多模态配准和遮挡图像的配准等有助于提高当前环境中最难任务的技术的鲁棒性。 

        在本文中,我们了解了图像配准的概念、图像配准的不同方法以及使用 OpenCV 在 Python 中的实现。

六、相关参考

OpenCV每日函数 特征检测和描述模块(3) ORB类(关键点检测器和描述符提取及匹配)_坐望云起的博客-CSDN博客_opencv orb

OpenCV每日函数 matchTemplate模板匹配函数_坐望云起的博客-CSDN博客_opencv高精度模板匹配


http://chatgpt.dhexx.cn/article/6aeITDBk.shtml

相关文章

图解矩阵的秩

1.图解矩阵的秩 1.图解矩阵的秩1.1 满秩矩阵1.2 非满秩矩阵1.3 零矩阵1.4 秩的性质1.4.1 满秩矩阵复合的性质1.4.2 一般矩阵复合的性质 1.图解矩阵的秩 笔记来源于:《马同学图解线性代数》 详细过程: 1.1 满秩矩阵 1.2 非满秩矩阵 1.3 零矩阵 1.4 秩…

java 矩阵求秩_线性代数精华3——矩阵的初等变换与矩阵的秩

矩阵的初等变换这个概念可能在很多人听来有些陌生,但其实我们早在初中的解多元方程组的时候就用过它。只不过在课本当中,这种方法叫做消元法。我们先来看一个课本里的例子: 假设我们要解这个方程,怎么做呢? 首先&#…

矩阵秩的定义和相关结论汇总

秩的定义:对于矩阵,以下陈述为真。(如果,则用共轭转置替换下述转置) rank(A)矩阵A经过行初等变换,所得行阶梯形矩阵的非零行数rank(A)矩阵A经过行初等变换,所得行阶梯形矩阵的主元数rank(A)矩阵…

秩为1的矩阵的性质总结

网上东拼西凑找到的,只能用手抄下来,方便自己复习看👀。有什么不对的还希望大家指出!

秩一矩阵的优良性质

前言:仅个人小记 秩一矩阵非常漂亮的五个性质: (1)秩一矩阵一定能够拆解为两个列向量 a ⃗ \vec{a} a , b ⃗ \vec{b} b 矩阵乘积的形式,具体为 A a ⃗ b ⃗ T A\vec{a}{\vec{b}}^{T} Aa b T这种形式 &…

伴随矩阵秩的证明

伴随矩阵是引出n阶矩阵逆计算的一个重要矩阵工具,课本中关于伴随矩阵的涉及的讲解并不多,本文将从一下方面讲解: 基础重要计算公式(引入逆的求解);通过和逆的关系求解伴随矩阵以及证明相关运算律&#xff…

使用 Amazon Amplify快速创建简单的 Android 应用程序

背景: 亚马逊云科技提供了100余种产品免费套餐。其中,计算资源Amazon EC2首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB标准存储容量。 大家好,我是坚果,由于最近一直疫情…

基于Android的个人时间管理设计与开发

选题依据(包括目的、意义、国内外现状和发展趋势,主要参考文献): 课题的意义随着科学技术高速发展,手机普遍率越来越高,大学生甚至小学生几乎人人拥有一台智能手机,移动端应用发展也越来越快&am…

基于Android平台的酒店预订管理系统软件设计的论文

基于Android平台的酒店预订管理系统软件设计 摘要 随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网…

Android Studio项目结构详解

Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。 在IDEA的基础上,Android Studio 提供: 1.基于Gradle的构建支持。2.An…

基于Android公交查询系统的设计与实现(论文+程序设计源码+数据库文件)

【摘 要】随着互联网的技术的不断更新发展,人们生活节奏也在不断的加快,对于网络的依赖也越来越紧密,尤其是在等公交,经常会错过班次,但又不知道,下次班次几点发车,这样会导致乘客花掉大把时间在…

Android应用程序开发习题答案

第一章、Android 简介 1.简述各种手机操作系统的特点。 目前,手机上的操作系统主要包括以下几种,分别是Android、iOS、Windows Mobile、Windows Phone 7、Symbian、黑莓、PalmOS和Linux。 (1)Android是谷歌发布的基于Linux的开源手…

基于安卓的个人理财记账app(android毕业设计)

个人理财管理系统是基于Android系统开发的一款手机应用程序。它主要是为了满足人们在快节奏的生活中可以随时记下自己的收支情况的需求。个人理财管理系统与传统的记账方式相比,体现了它的便捷性、安全性及可扩展性。系统采用Eclipse Android Developer Tools作为开…

Android Studio实现外卖订餐系统

项目目录 一、项目概述二、使用技术三、开发环境四、详细设计4.1 工程结构4.2 数据库设计4.3 首页4.4 购物车4.5 我的4.6 滑动菜单 五、运行演示六、项目总结七、源码获取 一、项目概述 随着人们生活节奏的加快,生活质量的普遍提高,足不出户享受美食的需…

Android程序的目录结构

Android程序的目录结构 Android的项目的目录结构,在开始设计程序时,可能感觉不到有多大的用处, 但是随着开发的深入,会涉及到各种类型的文件,项目的目录结构就非常重要了, 你不能把文件乱放&#xff0c…

Android App 架构设计

简介 本文是对谷歌原生文档的翻译,仅供学习参照。 原文链接 此文档写给希望学习最优编程实践和架构以开发健壮、高质量APP的开发者。 开发者常遇到的问题 传统的桌面程序大多数使用场景是有一个启动入口,作为一个独立进程运行。Android app结构要复…

Android 程序框架设计

这篇文章主要内容来自于之前我讲的一个PPT文档,现在将其整理如下。欢迎指正。以下的内容都是来自于我自身的经验,欢迎大家多提自己的建议。 1、一些概念 模式的定义: 每个模式都描述了一个在我们的环境中不断出现的问题,然后描述…

3、Android项目结构分析

Android项目结构分析 文章目录 Android项目结构分析一、文件系统结构1、项目配置清单文件夹 manifests2、源程序文件夹Java3、资源程序文件夹res①布局文件夹res/layout②值文件夹res/values③软件设计的国际化④图像文件夹res/drawable⑤声音文件夹res/raw 二、创建多模块三、…

Android | 序列化Serializable/Parcelable 使用总结

本文已同步发表于我的微信公众号,搜索 代码说 即可关注,欢迎与我沟通交流。 文章目录 一、什么是序列化?为什么要序列化?怎么进行序列化?二、Serializable2.1 序列化举例2.2 重写readObject、writeObject、readResolve…