基于线特征的图像配准

news2024/12/23 0:25:09

一、线特征提取

1.1 模板检测

使用模板在一幅图像上移动,他会对特定方向上的(一个像素宽)线响应强烈。下面是常见检测模板:
在这里插入图片描述

1.2 边缘检测

边缘检测的基本思想是使用如下两个准则之一找到图像中快速变换的位置:
1. 寻找灰度的一阶导数的幅值大于某个阈值的位置
2. 寻找灰度的二阶导数有零交叉的位置

matlab提供的函数:[g,t]=edge(f,'method',paramters)

1.2.1 Sobel边缘检测器

检测器模板:
在这里插入图片描述
matlab函数:[g,t]=edge(f,'sobel',T,dir)

1.2.2 Prewitt边缘检测器

检测器模板:
在这里插入图片描述

matlab函数:[g,t]=edge(f,'prewitt',T,dir)

1.2.3 Roberts边缘检测器

检测器模板:
在这里插入图片描述
matlab函数:[g,t]=edge(f,'roberts',T,dir)

1.2.4 LoG检测器

介绍: 使用高斯函数的二阶导数,称为高斯拉普拉斯算子(LoG)。

检测原理: 使用 △ 2 G ( x , y ) \bigtriangleup ^2G(x,y) 2G(x,y)对图像卷积有两个效果:它平滑了图像(降低了噪声),并计算拉普拉斯算子,进而产生一幅双边缘图像。然后通过查找双边缘之间的零交叉来定位边缘。

matlab函数:[g,t]=edge(f,'log',T,sigma),T设置为0会产生封闭轮廓

1.2.5 零交叉检测器

与LoG方法相同的概念,但卷积是使用一个特定的滤波器函数H来完成。

matlab函数:[g,t]=edge(f,'zerocross',T,H)

1.2.6 Canny边缘检测器

是函数edge中最强大的边缘检测器。

matlab函数:[g,t]=edge(f,'canny',T,sigma)

1.3 霍夫变换(Hough)线检测

基本思想: 假设在X-Y平面有直线 y = k x + b y=kx+b y=kx+b,该直线上的点 P i P_i Pi应满足该式子,反之如果一些点 P i P_i Pi满足该式子它们就在同一条直线上。利用霍夫变换,将该直线方程转换为 b = − k x + y b=-kx+y b=kx+y,那么在K-B平面(参数空间)上,这些点 P i P_i Pi都是一条直线,且相交于 ( k , b ) (k,b) (k,b),找到 ( k , b ) (k,b) (k,b)即得到了X-Y平面的直线方程。

在实际的检测中,由于直线斜率k有可能为无穷大,所以用法线来表示直线 x cos ⁡ θ + y sin ⁡ θ = ρ x\cos \theta +y\sin \theta =\rho xcosθ+ysinθ=ρ
在这里插入图片描述

算法步骤:

  1. 使用canny算子检测图像边缘,得到二值化的边缘图像
  2. 检测非背景点 ( x , y ) (x,y) (x,y)【非0的点】作为参数带入: x cos ⁡ θ + y sin ⁡ θ = ρ x\cos \theta +y\sin \theta =\rho xcosθ+ysinθ=ρ,在累加单元 θ ρ \theta\rho θρ(二维数组)将满足的 ( θ , ρ ) (\theta,\rho) (θ,ρ)元素值加1
  3. 设定阈值,累加单元中大于阈值的参数 ( θ i , ρ j ) (\theta_i,\rho_j) (θi,ρj)即认为是X-Y平面上的直线
  4. 画出直线 x cos ⁡ θ i + y sin ⁡ θ = ρ j x\cos \theta_i +y\sin \theta =\rho_j xcosθi+ysinθ=ρj

matlab相关函数:
[H,theta,rho]=hough(f)
peaks = houghpeaks(H,NumPeaks)
lines=houghlines(f,theta,rho,peaks)

1.4 LSD算法

LSD(Rafael Grompone von Gioi, LSD: a Line Segment Detector,2010)是一种直线检测分割算法,它能在线性的时间内得出亚像素级精度的检测结果。该算法被设计成可以在任何数字图像上都无需参数调节。

缺点:
1、对于直线相交情况,若有相交必有至少一条直线被割裂为两条。又因为其基于梯度,直线交点梯度值往往又较小(不被检测为边缘点),因此很有可能相交的两条直线在交点处被割裂为四条线段;
2、由于局部检测算法自增长的特点,对于长线段被遮挡、局部模糊等原因经常割裂为多条直线。

【论文及代码】http://www.ipol.im/pub/art/2012/gjmr-lsd/

【GitHub】利用OpenCV和MATLAB进行封装代码

1.5 LBD算法

来源论文:《An efficient and robust line segment matching approach based on LBD descriptor and pairwise geometric consistency,2013》

优势:该文章提出了LBD线检测算法,克服了LSD线检测碎片化问题和提高大尺度变化的性能,同时提出一种线特征匹配算法。

算法流程参考:https://www.cnblogs.com/Jessica-jie/p/7523364.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/505018.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flutter框架:从入门到实战,构建跨平台移动应用的全流程解析

第一章:Flutter框架介绍 Flutter框架是由Google推出的一款跨平台移动应用开发框架。相比其他跨平台框架,Flutter具有更高的性能和更好的用户体验。本章将介绍Flutter框架的概念、特点以及与其他跨平台框架的比较,以及Flutter开发环境的搭建和…

MathGPT是什么,MathGPT与ChatGPT的区别是什么,MathGPT十大应用场景

MathGPT是一种基于自然语言处理技术的数学语言模型,其目的是通过自动化生成数学公式、证明和解题步骤等来辅助数学学习和研究。 与ChatGPT相比,MathGPT主要关注数学领域而非通用性的自然语言理解,因此其训练语料库和预测任务都与数学有关&…

Ubuntu20.04安装Vtk9.2.6+PCL1.12.1(成功无报错)

成功不报错的原因:VTK和PCL版本需要对应正确.. 错误可参考:Ubuntu20.04 编译 pcl1.8可能出现的问题 安装参考1:ubuntu20.04下安装pcl_ubuntu安装pcl_Yuannau_jk的博客-CSDN博客 安装参考2:Ubuntu20.04 安装pcl详细教程_ubuntu20…

构造函数,析构函数,拷贝构造函数与运算符重载简图总结,赋值运算符重载与前置++后置++的重载参数区分

构造函数简图 析构函数简图 拷贝构造函数简图 运算符重载简图 赋值运算符重载与拷贝构造函数的区别 即为赋值运算符这涉及到两个已经存在的实例化对象之间的复制拷贝。这个与拷贝构造函数是完全不一样的,拷贝构造函数它的本质上就是一个构造函数,主要是用…

C++ 类和对象下

文章目录 重载operator<< 输出自定义类型const对象 无法调用 非const成员函数非const函数的缺陷 初始化列表&#xff1a;对象的成员定义的位置为什么会要用到初始化列表&#xff1f;自定义类型成员如何初始列表初始化灵活的初始化列表声明次序内置类型_size不给缺省值&am…

win10系统电脑硬盘里的文件不显示,到底出了什么问题呢?有什么解决方法呢?

演示机型&#xff1a;技嘉 H310M HD22.0 系统版本&#xff1a;Windows 10 专业版 软件版本&#xff1a;云骑士数据恢复软件3.21.0.92 Win10系统是我们经常使用的操作系统之一&#xff0c;但这也意味着我们可能会遇到一些问题。其中一个比较常见的问题是硬盘中的文件不显示。在这…

国内又款智能AI聊天软件-科大讯飞星火模型

介绍 介绍 中国科大讯飞星火GPT聊天软件是一款基于自然语言处理技术的人工智能聊天机器人。它利用了大量的文本数据&#xff0c;通过深度学习模型进行训练&#xff0c;从而实现与用户的智能对话。讯飞星火GPT聊天软件能够理解用户输入的问题或指令&#xff0c;并根据预设的回答…

MySQL 主从复制涉及到了几个线程?

目录 前言一、主从同步原理二、主从同步分析 前言 说到主从&#xff0c;我相信大家在 MySQL 这一节面试经常被问到MySQL 的主从复制原理&#xff0c;而且大家背得滚瓜烂熟。但是在主从复制的过程中&#xff0c;是如何进程数据同步的&#xff0c;又涉及到了哪些线程呢&#xff…

卖一辆亏5.8万美元!福特的困扰

随着电动化进入关键的「抢量」周期&#xff0c;加上年初掀起的降价潮&#xff0c;对于还无法适应转型节奏的传统汽车制造商来说&#xff0c;现在是一个艰难的时刻。 本月初&#xff0c;福特首席执行官Jim Farley表示&#xff0c;电动汽车市场的降价是"令人担忧的趋势"…

js垃圾回收机制各阶段问题以及解决方案

很多文章的三色标记法&#xff0c;增量标记法&#xff0c;新生代老生代&#xff0c;引用计数法&#xff0c;标记回收法。很容易给最开始学习垃圾回收算法的朋友搞混。文章适合有一部分基础&#xff0c;但是要把算法搞混的朋友们。这篇文章带大家梳理一下本人的思路&#xff0c;…

ASEMI代理ADV7125JSTZ330原装ADI车规级ADV7125JSTZ330

编辑&#xff1a;ll ASEMI代理ADV7125JSTZ330原装ADI车规级ADV7125JSTZ330 型号&#xff1a;ADV7125JSTZ330 品牌&#xff1a;ADI/亚德诺 封装&#xff1a;LQFP-48 批号&#xff1a;2023 引脚数量&#xff1a;48 工作温度&#xff1a;-40C~85C 安装类型&#xff1a;表面…

深夜12点,果断卸载Access,3分钟启用国产Access,源自WPS

Access的“忠实粉丝”&#xff0c;你我皆可能是一员 历经20多年迭代的微软Access&#xff0c;因简单易用&#xff0c;在全球吸引了一大批的“忠实粉丝”&#xff0c;你我可能就是其中的一员。 基于Windows操作系统的集成开发的大环境&#xff0c;Access的灵活性和实用性大大提…

QUIC在京东直播的应用与实践 | 京东云技术团队

作者&#xff1a;京东零售 周凯 一. 前言与背景 国内的互联网直播技术从2005年前后兴起&#xff0c;彼时最具代表性的直播产品是由PPLive创始人姚欣在华中科技大学就读期间发起的校园直播项目PPLive。当时的直播技术用的还是基于windows系统自带的mediaplayer内置的COM组件开…

小程序uniapp利用canvas生成海报并可以保存至相册

✨uniapp实现生成海报并保存至相册组件&#xff0c;u-popup可以根据自己所使用的组件进行替换 这里主要讲的是JS部分&#xff0c;css和元素相关的就不展开赘述了&#xff0c;下方先给大伙看看效果图&#xff0c;图的下方有代码讲解&#xff0c;最下方有完整代码&#xff0c;如…

Echarts 热力图的详细配置过程

文章目录 一&#xff0c;配置过程二&#xff0c;具体实例 一&#xff0c;配置过程 引入Echarts库和热力图插件 <script src"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script> <script src"https://cdn.jsdelivr.net/npm/…

Java多线程入门到精通学习大全?了解线程池和线程常用集合的基本原理、代码示例!(第六篇:线程池和集合的学习)

设计和实现多线程应用程序需要了解线程池、线程常用集合等相关知识。下面我们将分别介绍线程池、线程常用集合的原理、使用场景、代码示例、注意事项和总结。 1. 线程池 线程池是一种线程调度机制&#xff0c;它可以管理多个线程&#xff0c;并且可以重复使用这些线程来处理多…

Transformers回顾 :从BERT到GPT4

人工智能已成为近年来最受关注的话题之一&#xff0c;由于神经网络的发展&#xff0c;曾经被认为纯粹是科幻小说中的服务现在正在成为现实。从对话代理到媒体内容生成&#xff0c;人工智能正在改变我们与技术互动的方式。特别是机器学习 (ML) 模型在自然语言处理 (NLP) 领域取得…

大众软件之变:宾利品牌制造负责人接任CARIAD CEO

作者 | 德新 编辑 | 王博 上周五&#xff0c;Business Insider爆料了大众软件组织CARIAD人事大调整&#xff0c;董事会几乎全军覆没&#xff0c;引发轩然大波。 这周一&#xff0c;大众的官宣接踵而至——大众集团老兵、原宾利品牌制造负责人Peter Bosch接替CARIAD CEO一职。 …

《基于光学传感器的心房颤动检测:综述》阅读笔记

目录 一、论文摘要 二、论文十问 Q1&#xff1a;论文试图解决什么问题&#xff1f; Q2&#xff1a;这是否是一个新的问题&#xff1f; Q3&#xff1a;这篇文章要验证一个什么科学假设&#xff1f; Q4&#xff1a;有哪些相关研究&#xff1f;如何归类&#xff1f;谁是这一课…

数智无限|东土科技科东软件5月活动预告

这个5月&#xff0c;东土科技&科东软件将携带自主研发的国产操作系统Intewell、智能控制通用工具软件MaVIEW、边缘通用控制器NewPre、基于TSN技术的智能化工业网络硬件、数字工厂智能产线一站式解决方案&#xff0c;以及面向智能工厂的离散控制、流程控制、运动控制、机器人…