数字图像处理笔记——边缘连接和直线检测(Edge linking and line detection)

本文主要是介绍数字图像处理笔记——边缘连接和直线检测(Edge linking and line detection),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

边缘连接

我们得到边缘图以后会出现是一个问题,就是由于有的像素偏暗,会出现边缘不连续的现象,这种情况我们就要采用边缘连接算法。我们对每一个边缘上的点进行遍历,以这个像素为中心看一个矩形窗内的其他像素,如果存在边缘幅度响应M与边缘相角响应α都与中心像素差别不太大的像素,那么把这个像素也纳为边界内

 

边缘跟踪

现在我们就有一个闭合的边缘了,那么我们怎么样对边缘上的点进行排序呢,下图演示了MOORE边界跟踪算法的步骤

当我们得到上图所示的顺序以后我们就能用链式码对其进行表示,为了能够将不同角度同一形状的图像匹配起来,我们可以编码进行两步操作:1.重排编码顺序使得编码总是从最小值开始 2.只对前后方向的差值进行编码(要注意的是我们需要对差值进行模8操作,即如果前后差为-2,则我们需要对其编码为6)。我们在matlab中可以用bwtraceboundary函数来对边缘进行追踪

 

多边形拟合

当我们有了边缘点后如何将他们拟合成一个多边形呢?多边形拟合(polygonal fitting)算法如下

以上算法可以对图中的直线进行拟合,但是如果图中不只有一条直线,而是存在很多条直线呢(很多像素不只属于同一条直线)?这种情况下我们有Hough变换来解决这个问题。对于一条直线,我们可以把它的方程写为法线式

那么对于过某一点的直线,我们可以得到一个所有可能直线的集合,我们可以把这个集合中直线对应的角度θ和距原点距离ρ画出来,那么我们可以知道一条直线上的像素的曲线都会过同一个点,这个点对应的p和θ,就是这条直线的p和θ。我们如果把图像中所有像素的曲线画出来,找到对应通过曲线数最多的部分点,那么我们可以认为这部分店对应的直线是存在于图像中的。

一下是具体的算法步骤,在matlab中我们可以用houghlines函数来实现这个功能

举一个例子如下

最后提的一点就是如果我们想只提取图中大纹理的直线,我们也可以实现对图像进行平滑处理,再经过hough检测

 

 

这篇关于数字图像处理笔记——边缘连接和直线检测(Edge linking and line detection)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/401264

相关文章

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2