| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 一种基于模板匹配的图像配准方法 -> 正文阅读 |
|
[人工智能]一种基于模板匹配的图像配准方法 |
01?前言如下图所示,有时候参考图像与浮动图像的灰度区别很大,但是它们又有某一个小区域比较相似,这种情况下直接通过特征点匹配或形变优化来配准的效果并不理想。 这个时候我们可以尝试使用模板匹配的方法来配准,首先在参考图像上选取一个相似区域作为模板,然后在浮动图像上搜索与模板最相似的区域(匹配区域),最后通过计算模板在参考图像上位置与匹配区域在浮动图像上位置的坐标偏移,作为参考图像与浮动图像的整体坐标偏移。 所以模板匹配的核心思路是:搜索最相似的区域作为匹配区域。 02?相似度衡量既然核心思路是搜索相似区域,那么首先必须有一个合适的指标来衡量模板T与搜索区域I的相似度。假设参考图像上模板的左上角x坐标、y坐标分别为x、y,浮动图像上搜索区域的左上角x坐标、y坐标分别为x'、?y',且假设x' - x = dx,y' - y?= dy,同时它们的宽、高都是w、h,下面我们分别介绍Opencv中几种常用的相似度衡量指标。
通过计算模板与搜索区域中所有对应位置像素点的像素平方差之和,来衡量两者相似度,计算结果越小表示越相似,当计算结果为0时表示两者完全相同。
该指标与以上差值平方和类似,只不过加了一个归一化的操作。 归一化操作的作用是什么呢?就是为了确保当T和I的亮度都乘以某个系数a之后R值保持不变,也即当T(i,j)与I(i+dy,j+dx)分别变成a*T(i,j)与a*I(i+dy,j+dx),那么R值保持不变。 同样,计算结果越小表示越相似,当计算结果为0时表示两者完全相同。
采用T和I的相关系数作为衡量指标,相关系数越大表示两者越相似。
对比相关系数,归一化相关系数多了一个归一化操作,也是为了确保当T和I的亮度都乘以某个系数a之后相似度保持不变: 归一化相关系数越大表示两者越相似。
去均值相关系数与相关系数的区别在于:计算去均值相关系数时T和I都减去各自的均值,而相关系数则不减去均值。这样做是为了消除T和I亮度不同对计算结果的影响,比如T和I的结构非常相似但亮度有很大区别,那么它们分别减去各自的均值,使用每个像素点的亮度偏移来计算,而不是使用亮度本身来计算,因此消除了亮度不同的影响。 去均值相关系数越大表示两者越相似。
同样,相比去均值相关系数,去均值归一化相关系数多了归一化操作: 去均值归一化相关系数越大表示两者越相似。 03?Opencv4.5.2中模板匹配的应用调用Opencv的matchTemplate函数,可以方便实现模板匹配,下面介绍一下该函数的参数以及调用方法。 函数原型及参数说明:
调用matchTemplate函数得到result矩阵之后,在result矩阵中查找最大值和最小值,以及最大最小值对应的位置。不过需要注意,使用TM_SQDIFF、TM_SQDIFF_NORMED指标时,result中最小值的位置表示匹配位置,如果使用TM_CCORR、TM_CCORR_NORMED、TM_CCOEFF、TM_CCOEFF_NORMED指标,则result中最大值的位置表示匹配位置。 通过模板匹配来实现图像配准的实现代码如下:
以上代码中,因为使用TM_CCOEFF_NORMED作为相似度,故选择result矩阵中最大值的位置max_index作为浮动图像上的匹配位置。 总结模板匹配流程为: 1. 在参考图像选择模板,可以通过调用Opencv的selectROI手动选择; 2.?调用matchTemplate函数搜索匹配区域; 3. 调用minMaxLoc函数寻找匹配结果的最大最小值,以及对应位置; 4. 根据所使用的相似度指标,选择最大值位置或最小值位置作为匹配位置; 5. 计算坐标偏移,得到仿射变换矩阵; 6. 调用warpAffine函数对浮动图像进行仿射变换,得到配准图像。 04 基于模板匹配的配准结果我们使用模板匹配的配准方法对一组荧光成像图片进行配准:
运行以上代码,将配准结果做成视频如下,可以看到配准后的图像得到对齐。 配准前图像 配准后图像 05?基于模板匹配的配准方法的缺陷没有适用于任何情况的完美配准方法,只能说根据图像的情况特点来选择一种合适的方法对其进行配准。 当参考图像与浮动图像的灰度区别很大,并且它们有某一个小区域比较相似时,则可以使用模板匹配来配准,但如果图像存在旋转、缩放、局部非刚性形变的情况下,以上介绍的方法则不适用。 对于局部非刚性形变的图像,也可以先使用模板匹配进行整体平移的粗配准,然后再使用FFD、TPS等形变做局部形变配准。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 7:41:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |