图像中直线的提取方法

合集下载

hough变换方法

hough变换方法

hough变换方法Hough变换方法引言Hough变换是一种图像处理方法,主要用于检测和提取图像中的几何形状,如直线、圆等。

它在计算机视觉和模式识别领域有着广泛的应用。

本文将介绍Hough变换的原理、算法和应用,并探讨其优缺点以及未来的发展方向。

一、Hough变换的原理Hough变换的核心思想是将图像中的几何形状转化为参数空间中的曲线或点的形式,从而简化形状检测的问题。

对于直线检测来说,Hough变换可以将直线表示为参数空间中的一个点,通过在参数空间中进行累加操作,找到曲线交点最多的点,从而确定图像中的直线。

二、Hough变换的算法1. 边缘检测:在进行Hough变换之前,需要对图像进行边缘检测,以提取形状的边缘信息。

常用的边缘检测算法包括Sobel、Canny 等。

2. 构建参数空间:对于直线检测来说,参数空间可以理解为直线在参数空间中的表示形式。

通常使用极坐标系表示直线,即每个直线由一个长度和一个角度唯一确定。

3. 累加操作:对于图像中的每个边缘点,计算其在参数空间中的曲线或点,并进行累加操作。

通过累加操作,可以找到曲线交点最多的点,从而确定图像中的直线。

4. 阈值判断:根据累加结果,可以设置一个阈值,只有当累加值超过该阈值时,才认为该点对应的直线存在。

5. 参数反变换:将参数空间中的曲线或点反变换回图像空间,得到检测到的直线。

三、Hough变换的应用1. 直线检测:Hough变换最常见的应用就是直线检测。

在工业检测、路标检测等领域中,直线的检测是一项基础任务,Hough变换可以实现准确地直线检测,从而为后续处理提供便利。

2. 圆检测:除了直线检测,Hough变换还可以用于圆的检测。

通过在参数空间中寻找曲线交点最多的点,可以确定图像中的圆的位置和半径。

3. 图像分割:Hough变换可以将图像中的不同几何形状分割出来,从而实现图像的分割处理。

在医学图像处理、目标跟踪等领域中,图像分割是一项重要的任务。

opevcv lsd线段提取

opevcv lsd线段提取

opevcv lsd线段提取LSD线段提取是基于OpenCV图像处理库的一种算法,用于从图像中提取直线段。

本文将介绍LSD线段提取的原理、应用领域和优缺点。

一、LSD线段提取原理LSD(Line Segment Detector)线段提取算法是一种基于边缘检测的直线段提取方法。

它通过分析图像中的边缘信息,识别出其中的直线段,并给出直线段的起点和终点坐标。

LSD算法主要包括以下几个步骤:1. 边缘检测:使用Canny边缘检测算法对图像进行预处理,提取出图像中的边缘信息。

2. 候选线段生成:根据边缘信息,生成候选直线段。

LSD算法采用了一种基于区域的策略,在不同的尺度上对边缘进行分组,生成候选直线段。

3. 直线段合并:对生成的候选直线段进行合并,得到最终的直线段结果。

LSD算法采用了一种自底向上的策略,从低层次的直线段开始合并,逐渐扩大范围,直到合并完所有相关的直线段。

二、LSD线段提取应用领域LSD线段提取算法在计算机视觉和图像处理领域有着广泛的应用。

以下是一些常见的应用领域:1. 机器人导航:LSD线段提取可以用于识别机器人环境中的直线障碍物,帮助机器人规划路径和避免碰撞。

2. 道路检测:LSD线段提取可以用于车道线检测,帮助自动驾驶车辆实现道路规划和车道保持功能。

3. 工业检测:LSD线段提取可以用于检测工业产品中的缺陷,如裂纹、划痕等,帮助提高产品质量和生产效率。

4. 图像分析:LSD线段提取可以用于图像分析和对象识别,帮助计算机理解图像中的结构和内容。

三、LSD线段提取优缺点LSD线段提取算法具有以下优点:1. 高效性:LSD算法采用了一种快速的合并策略,可以在很短的时间内处理大量的直线段。

2. 精度高:LSD算法能够有效地识别出图像中的直线段,并给出其准确的起点和终点坐标。

3. 鲁棒性强:LSD算法对图像噪声和光照变化具有较强的鲁棒性,能够适应不同的图像环境。

然而,LSD线段提取算法也存在一些缺点:1. 对参数敏感:LSD算法的性能很大程度上取决于参数的选择,需要根据具体应用场景进行调整。

霍乎变换 点云直线提取

霍乎变换 点云直线提取

霍乎变换点云直线提取摘要:1.霍乎变换的概述2.点云直线提取的背景和意义3.霍乎变换在点云直线提取中的应用4.霍乎变换在点云直线提取的实例分析5.总结正文:1.霍乎变换的概述霍乎变换,又称为霍夫变换,是一种在计算机视觉中广泛应用的二维变换方法。

它的主要作用是将图像中的关键点映射到对方图像的对应点,从而实现图像的匹配和拼接。

霍乎变换具有尺度不变性、旋转不变性和亮度不变性等优点,因此在图像处理、模式识别和计算机视觉等领域有着广泛的应用。

2.点云直线提取的背景和意义点云直线提取是计算机视觉和图形学领域的一个重要研究方向。

在三维数据处理、场景重建和机器人导航等方面,点云直线提取都有着重要的应用价值。

通过对点云数据中的直线进行提取,可以简化点云数据结构,降低数据量,提高数据处理和分析的效率。

同时,提取出的直线还可以作为特征用于识别和分类等任务。

3.霍乎变换在点云直线提取中的应用霍乎变换在点云直线提取中的应用主要体现在以下几个方面:(1)通过霍乎变换,可以将点云数据中的直线映射到对方点云数据的对应直线,从而实现点云直线的匹配和提取。

(2)利用霍乎变换的尺度不变性和旋转不变性,可以对不同尺度和旋转的点云数据进行直线提取,提高直线提取的准确性和鲁棒性。

(3)结合霍乎变换与其他特征提取方法,如直线段长度、直线段方向等,可以进一步提高点云直线提取的准确性和可靠性。

4.霍乎变换在点云直线提取的实例分析假设有两个点云数据集A 和B,分别表示同一场景的不同视角。

为了提取这两个点云数据集中的共同直线,可以采用霍乎变换进行处理。

具体步骤如下:(1)对点云数据集A 和B 进行预处理,包括滤波、采样等操作,以消除噪声和减少计算量。

(2)计算点云数据集A 和B 之间的变换矩阵,即霍乎变换矩阵。

(3)将点云数据集A 中的每个点映射到点云数据集B 中,得到映射后的点云数据。

(4)对映射后的点云数据进行直线提取,可以采用一些经典的直线提取算法,如Hough 变换、RANSAC 算法等。

OpenCV获取图像中直线上的数据具体流程

OpenCV获取图像中直线上的数据具体流程

OpenCV获取图像中直线上的数据具体流程需求说明在对图像进⾏处理时,经常会有这类需求:客户想要提取出图像中某条直线或者ROI区域内的感兴趣数据,进⾏重点关注。

该需求在图像检测领域尤其常见。

ROI区域⼀般搭配Rect即可完成提取,直线数据的提取没有现成的函数,需要⾃⾏实现。

当直线为纵向或者横向时,⽐较简单,只需要从起点到终点提取该⾏或者列的数据即可;但是直线若为斜向的,则需要从起点出发,向终点⽅向逐个像素提取。

⼤家都知道,图像是由许多像素组成,⽽斜向直线的数据提取路线并不⼀定就是标准的斜线,也可能是呈阶梯状的路线,⽽如何进⾏路线设计,就是本⽂所要展⽰的内容。

具体流程1)建⽴vector<pair<float,int>> result容器⽤于存放数据,设置初始化参数。

其中,inImage是输⼊图像,start为起点,end为终点,点的类型为cv::Point。

vector<pair<float, int>> result;int row = inImage.rows;int col = inImage.cols;int r1 = start.y;int c1 = start.x;int r2 = end.y;int c2 = end.x;2)确定两点间距离dist,将起点到终点的横坐标差和纵坐标差进⾏勾股定理可得。

所得距离可能为带⼩数的数据,然⽽像素的个数都为整数,所以进⾏四舍五⼊。

除此之外,还要判断下距离,若距离为0,则只返回起点数据。

float dist = round(sqrt(pow(float(r2) - float(r1), 2.0) + pow(float(c2) - float(c1), 2.0)));if (dist <= 0.00001f) {pair<float, int> temp;temp.first = inImage.at<float>(r1, c1);temp.second = 0;result.push_back(temp);return result;}3)确定横向纵向的步进间隔。

halcon提取直线例程

halcon提取直线例程

halcon提取直线例程摘要:1.介绍halcon 提取直线例程的背景和目的2.详述halcon 提取直线例程的具体步骤3.分析halcon 提取直线例程的优点和不足4.总结halcon 提取直线例程的应用价值正文:一、介绍halcon 提取直线例程的背景和目的halcon 是一款广泛应用于工业自动化领域的图像处理软件,其强大的功能和灵活的配置使得它在机器视觉领域有着广泛的应用。

提取直线是机器视觉中的一个重要任务,它可以帮助我们获取图像中的直线信息,从而进行后续的定位、识别等操作。

本文旨在介绍如何使用halcon 软件提取直线,以实现对图像的快速准确处理。

二、详述halcon 提取直线例程的具体步骤1.打开halcon 软件,并读取需要进行直线提取的图像。

2.在halcon 中,选择“图像处理”模块,然后选择“滤波器”,在滤波器中选择“边缘检测”。

这一步的目的是找到图像中的边缘。

3.选择“图像处理”模块下的“几何学”,在几何学中选择“直线提取”。

这一步的目的是将边缘检测出的边缘连接成直线。

4.在“直线提取”的参数中,可以设置直线的阈值、斜率范围等参数,以筛选出需要的直线。

5.最后,使用“显示”模块,将提取出的直线进行显示。

三、分析halcon 提取直线例程的优点和不足优点:1.halcon 软件的功能强大,可以满足各种复杂的图像处理需求。

2.提取直线的算法成熟,提取结果准确。

3.软件操作简单,方便用户进行调试和优化。

不足:1.需要对halcon 软件有一定的了解,才能进行有效的图像处理。

2.在复杂环境下,可能需要多次调试参数,才能获得满意的结果。

四、总结halcon 提取直线例程的应用价值halcon 提取直线例程可以帮助我们在工业自动化领域快速准确地处理图像,从而实现对物体的定位、识别等功能。

其在机器视觉领域的应用价值不言而喻。

利用霍夫变换 提取直角-概述说明以及解释

利用霍夫变换 提取直角-概述说明以及解释

利用霍夫变换提取直角-概述说明以及解释1.引言1.1 概述霍夫变换是一种常用的图像处理技术,通过数学方法寻找图像中的直线和直角。

本文将介绍如何利用霍夫变换提取直角的方法和优势。

在图像处理领域,直角是一种常见的几何形状,具有明显的特征,因此提取直角对于图像分析和识别具有重要意义。

传统的方法往往需要通过复杂的图像处理算法和人工标注来提取直角,效率低下且易受噪声干扰。

而霍夫变换通过对图像中的直线进行检测和拟合,可以高效地提取直角。

其原理是将直线表示为极坐标形式,通过在参数空间中累加直线的交点,可以找到直角的位置。

并且,霍夫变换具有较强的抗噪能力,可以有效地处理复杂的图像情况。

本文将详细介绍霍夫变换的原理、在直角提取中的应用以及提取直角的优势,希望读者能对利用霍夫变换提取直角有一个深入的了解。

1.2 文章结构文章结构部分将会介绍整篇文章的章节安排和主要内容,为读者提供一个清晰的概览。

具体包括以下内容:文章结构本文将主要分为三个部分:引言、正文和结论。

在引言中将概述霍夫变换的概念和本文的目的,引导读者了解本文的重点。

正文部分将详细介绍霍夫变换的原理,以及在直角提取中的应用和优势。

最后,在结论部分将对整篇文章进行总结,展望未来可能的发展方向,并提出结论。

通过这样的结构安排,读者可以清晰地了解本文的内容框架,有助于他们更好地理解论点和论证。

1.3 目的:本文的目的是介绍利用霍夫变换提取直角的方法。

通过深入理解霍夫变换的原理和应用,我们可以更好地理解如何利用这一技术来检测图像中的直角结构。

同时,我们还将探讨霍夫变换在直角提取中的优势,以及未来可能的发展方向。

通过本文的阐述,读者将能够更加全面地了解霍夫变换在图像处理中的重要性,以及其在直角检测中的实际应用价值。

2.正文2.1 霍夫变换的原理霍夫变换是一种数学方法,用于在图像或空间中检测具有特定形状或模式的物体。

它最初是由保罗·霍夫于1962年提出的,用于在图像中检测直线。

C语言实现opencv提取直线、轮廓及ROI实例详解

C语言实现opencv提取直线、轮廓及ROI实例详解

C语⾔实现opencv提取直线、轮廓及ROI实例详解⼀、Canny检测轮廓在上⼀篇⽂章中有提到sobel边缘检测,并重写了soble的C++代码让其与matlab中算法效果⼀致,⽽soble边缘检测是基于单⼀阈值的,我们不能兼顾到低阈值的丰富边缘和⾼阈值时的边缘缺失这两个问题。

⽽canny算⼦则很好的弥补了这⼀不⾜,从⽬前看来,canny边缘检测在做图像轮廓提取⽅⾯是最优秀的边缘检测算法。

canny边缘检测采⽤双阈值值法,⾼阈值⽤来检测图像中重要的、显著的线条、轮廓等,⽽低阈值⽤来保证不丢失细节部分,低阈值检测出来的边缘更丰富,但是很多边缘并不是我们关⼼的。

最后采⽤⼀种查找算法,将低阈值中与⾼阈值的边缘有重叠的线条保留,其他的线条都删除。

本篇⽂章中不对canny的算法原理作进⼀步说明,稍后会在图像处理算法相关的⽂章中详细介绍。

下⾯我们⽤OpenCV中的Canny函数来检测图像边缘int main(){Mat I=imread("../cat.png");cvtColor(I,I,CV_BGR2GRAY);Mat contours;Canny(I,contours,125,350);threshold(contours,contours,128,255,THRESH_BINARY);namedWindow("Canny");imshow("Canny",contours);waitKey();return 0;}显⽰效果如下:⼆、直线检测⽤到的是霍夫变换检测直线的算法直线在图像中出现的频率⾮常之⾼,⽽直线作为图像的特征对于基本内容的图像分析有着很重要的作⽤,本⽂通过OpenCV中的hough变换来检测图像中的线条。

我们先看最基本的Hough变换函数HoughLines,它的原型如下:void HoughLines(InputArray image, OutputArray lines, double rho, double theta, int threshold, double srn=0, double stn=0 );它的输⼊是⼀个⼆值的轮廓图像,往往是边缘检测得到的结果图像;它的输出是⼀个包含多个Vec2f点的数组,数组中的每个元素是⼀个⼆元浮点数据对<rou,theta>,rou代表直线离坐标原点的距离,theta代表⾓度。

利用matlab进行图像检测--直线提取

利用matlab进行图像检测--直线提取

H a r b i n I n s t i t u t e o f T e c h n o l o g y图像工程导论课程名称:图像工程导论设计题目:《图像检测:直线提取》院系:班级:设计者:学号:哈尔滨工业大学教务处图像工程导论任务书二〇一五年柒月哈尔滨工业大学一、课题详细描述:提取图像中所有长度>8,<80像素的水平、垂直和对角直线。

二、课题设计思路:读取图片后将其转化为灰度图后记为二值图像,对其进行边缘检测后通过霍夫变换检测直线,并将符合像素要求的水平、垂直和对角直线绘制在屏幕上。

三、代码清单及注释x=imread('D:');%读取图片BW=rgb2gray(x);%转化为灰度图imshow(BW);thresh=[,];sigma=2; %定义高斯参数f=edge(double(BW),'canny',thresh,sigma);%canny边缘检测figure,imshow(f);[H,T,R]=hough(f,'ThetaResolution',89,'RhoResolution',10);%霍夫变换P=houghpeaks(H,400,'Threshold',80,'NHoodSize',[1,1]);lines=houghlines(f,T,R,P,'FillGap',1,'Minlength',8);for k = 1:length(lines)xy = [lines(k).point1; lines(k).point2];len = norm(lines(k).point1 - lines(k).point2);Len(k)=lenif ( len > 8& len < 80) %限定像素范围plot(xy(:,1),-xy(:,2),'LineWidth',2,'color','Red'); %绘制图像 hold on;endend四、代码运行结果及自评所需处理的图片:处理结果:从图中可以看到本程序确是找到了满足要求的所有直线并将其呈现在了新的窗口中,完成了设计要求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图像中直线提取以及方法研究第一节引言在对图像的研究和应用中,人们往往仅对图像中的某些部分感兴趣,这些部分常称为目标或前景(其它部分称为背景),它们一般对应图像中特定的具有独特性质的区域。

为了辨识和分析目标,需要将这些有关区域分离出来,在此基础上才有可能对目标进一步处理,如进行特征提取和测量。

随着数字信号处理技术和计算机技术的发展,机器视觉正得到广泛而深入的研究。

如何正确、快速地识别目标的特征信息,已成为机器视觉领域的研究热点。

直线是图像中物体的基本特征之一,一些人造目标如房屋、道路、桥梁具有明显的直线特征,而一般物体平面图像的轮廓也可以表示为直线及弧线的组合,进而对物体轮廓也可以表示为直线及弧线的组合,进而对物体轮廓的检测可以转化为对这些基本元素的识别和提取。

因此,研究图像中直线的检测算法对图像处理和模式识别具有重要意义。

本文就图像中直线提取方法为核心主要介绍了图像分割技术、边缘检测以及直线提取的几种常用算法。

第二节图像分割技术图像分割(image segmentation)就是按照一定的原则将一幅图像或景物分为若干个特定的、具有独特性质的部分或子集,并提取出感兴趣的目标的技术和过程。

在对各种图像的研究应用中,人们往往仅对图像中的某些部分感兴趣,这些部分常称为目标或前景(其它部分称为背景),它们往往一般对应图像中某些特定的、具有独特性质的区域。

这里的独特性质可以是像素的灰度值、物体的轮廓曲线、颜色、纹理等,也可以是空间频谱或直方图特征等。

在图像中用来表示某一物体的区域,其特征都是相近或相同的,但是不同物体的区域之间,特征就会急剧变化。

目标可以对应单过区域,也可以对应多个区域。

为了辨识和分析目标,需要将它们分离提取出来,在此基础上才有可能进一步进行图像识别与理解。

图像分割的目的是把图像空间分成一些有意义的区域,例如,一幅航空照片,可以分割成工业区、住宅区、湖泊、森林等;可以以逐个像素为基础去研究图像分割,也可以利用在规定领域中的某些图像信息去分割。

图像分割的依据可建立在图像上像素间的“相似性”和“非连续性”两个基本概念之上。

所谓像素的“相似性”是指图像中在某个区域内像素具有某种相似的特性,图像素灰度相等或相近,像素排列所形成的纹理相同或相近。

所谓的“不连续性”是指像素灰度的不连续,或是指像素排列形成的纹理结构的突变。

图像分割是图像处理领域的一个基本问题,也是自动目标识别技术(ATR)中的一项关键技术,是目标特征提取、识别与跟踪的基础。

目前已经提出的图像分割方法和种类很多,以不同的分类标准进行划分,图像分割的方法可以划分为不同的种类。

从分割依据的角度来看,图像的分割方法可以分为相似性分割和非连续性分割。

相似性分割就是将具有同一灰度级或相同组织结构的像素聚集在一起,形成图像的不同区域;非连续性分割就是首先检测局部不连续性,然后将它们连接在一起形成边界,如基于彩色分量分割、纹理图像分割等。

所使用的数学工具和分析手段也不断扩展,从视域信号到频域信号处理,进来小波变换也应用在图像分割中。

图像分割方法又可分为结构分割法和非结构分割法两大类。

结构分割方法是根据图像的局部区域像素的特征来实现图像分割,如阈值分割、区域生长、边缘检测、纹理分析等,这些方法是假定事先知道这些区域的特性,或者在处理过程中能够求的这些特性,从而能够寻找各种形态或研究各种像素群;非结构分割法包括统计模式识别、神经网络方法或其他利用景物的先验知识实现的方法等。

第三节边缘检测边缘检测是所有基于边界分割方法最基本的处理,图像的边缘是图像的最基本特征。

图像的边缘部分集中了图像大部分的信息,图像边缘的确定与提取对于整个图像场景的识别与理解是非常重要的。

边缘广泛存在于物体与背景之间、物体与物体之间,因此它是图像分割所依赖的重要特征。

由于图像物体中的边缘表现为灰度变化,因此,可通过计算灰度的不连续性来增强和检测边缘。

边缘检测方法很多,主要有空域微分算子、拟合曲面、小波多尺度边缘检测、基于数学形态学的边缘检测等。

一、空域微分算子。

是传统的边缘检测方法,由于边缘是图像上灰度变化最剧烈的地方,对应连续情形就是函数梯度较大的地方,所以研究比较好的求导算子就成为一种边缘检测的思路。

传统的边缘检测就是利用了这个特点,对图像各个像素点进行一阶或二阶微分来确定边缘像素点。

一阶微分图像的峰处对应着图像的边缘点;二阶微分图像的过零点对应着图像的边缘点。

边缘检测算子检查每个像素的领域并对灰度变化率进行量化,通常也包括方向的确定。

目前已经提出了许多种算子,例如Prewitt算子和Sobel算子等就是比较简单而且常用的边缘检测算子。

这些边缘检测算子的区别主要在于所采用的模版和元素系数不同,并且大多数是基于方向导数掩模求卷积的访求。

根据数字图像的特点,处理图像中常采用差分来代替导数运算。

对于图像的简单一阶导数运算,由于具有固定的方向性,只能检测特定方向的边缘,所以不具有普遍性。

二、拟合曲面。

是一种比较直观的方法,该方法利用当前像素领域中的一些像素值你和一个曲面,然后求这个连续曲面在当前像素处的梯度。

从统计角度来说,可以通过回归分析得到一个曲面,然后做类似的处理。

三、小波多尺度边缘检测。

20世纪90年代,随着小波分析得到迅速发展,小波开始用于边缘检测。

作为研究非平稳信号的工具,小波分析在边缘检测方面有得天独厚的优势。

四、基于数学形态学的边缘检测。

数学形态学是一种有代表性的非线性数学方法,在图像处理中已经获得了广泛的应用。

形态学运算是物体形状集合与结构元素之间的相互作用,对边缘方向不敏感,并能在很大程度上印制噪声和探测真正的边缘,同时数学形态学在图像处理方面还具有直观上的简单性和数学上的严谨性,在描述图像中物体形态特征上有独特的优势。

因此,将数学形态学用于边缘检测,既能有效地滤除噪声,又可保留图像中原有的细节信息,是边缘检测技术的一个重大突破。

目前常见的较成熟、基于数学形态的边缘检测方法有:基于多尺度形态学的边缘检测、基于数学形态学多级平均的图像边缘检测、基于偏微分方程的形态学边缘检测、基于均衡化和数学形态学的组合边缘检测以及基于坐标逻辑的多结构元图像边缘检测方法等。

第四节直线提取图像中的线特征是人类视觉感知的重要线索,它常对应于被摄物体的轮廓线或边界线,是图像中“有意义”变化的地方。

同时,线特征有是规则物体由其是人造物体的基本要素之一。

因此,在基于图像的几何量测量中,提取其线特征,并对其进行高精度定位,无论对于描述测量被摄物体还是解释图像,都非常重要。

对于图像线特征的提取通常分为边缘检测和边缘连接两部。

经典的边缘检测算子大多利用图像边缘的梯度极值特性。

检测局部一阶导数最大或二阶导数过零点作为边缘点。

如第二节中提到的Roberts、Sobel以及Laplacian算子等方法,由于直接进行微分运算,所以它们的抗噪声干扰能力比较低。

在经典的边缘检测算子基础上发展起来的LOG(Laplacian of gauss)算子、Canny算子、小波变换尺度边缘检测方法都在不同程度上对原有的边缘检测方法进行了改进,但其边缘检测的定位精度通常只能达到像素级。

随着基于图像的工业测量等领域对测量精度要求的提高,人们开始转向更高精度检测方法——子像素细分算法的研究。

子像素特征定位算法最早由于起峰在基于图像的精密测量与运动测量中提出,现已发展为插值拟合法、空间灰度法和数字相关定位法等多种检测方法,但采用插值方法对噪声非常敏感,鲁棒性差。

一种优秀的直线提取算法应具有下列特性:(1)提取直线的分辨率要高;(2)能提取低对比度的直线;(3)能消除共线的短直线之间的间隔;(4)计算简单且参数容易选择;(5)对噪声不太敏感;(6)具有良好的局部特性。

下面根据设计目标,讨论了一种像素级图像直线段提取的算法,并从抗噪声能力与提取精度两方面对其进行了验证。

Hough变换实现一种从图像空间到参数空间的映射关系。

其基本思想是点-线的对偶性,即图像空间共线的点对应在参数空间里相交的线;反过来,在参数空间中相交于同一点的所有直线在图像空间都有共线的点与之对应。

如用点-正弦曲线对偶变换解决该问题,直角坐标x-y中的一点(x,y)经过点-正弦曲线对偶变换(1),式中:为从原点引到直线的垂线长度;为垂线与x轴正向的夹角。

在极坐标中变为一条正弦曲线,直角坐标x-y中直线上的点经过Hough 变换后,它们的正弦曲线在极坐标中有一个公共交点。

在实际应用中,Hough变换算法是根据方程(1)将图像空间每一点映射到Hough空间中的一组累加器,满足上式的每一点,将使对应所有累加器中的值加1,如果图像中包含一条直线,则有一个对应的累加器会出现局部最大值,通过检测Hough空间中的局部最大值,即可确定与该条直线对应的一对参数,实现直线的检测。

从以上可以看出,Hough变换具有明了的几何解析性、一定的抗干扰能力和易于实现并行处理等特点然而也有一些缺陷,例如计算量大,精度不高(一些离散的伪线伪点都可能被认为是检测线)。

通过设置阈值,可以避免将一些相距较远的点被认为是同一条直线上的点,还可以避免将一些离散的点误认为是被检测的线。

这里用matlab语言对算法进行了编程验证,对比如下图:通过检测可以发现相对于其它方法,该处讨论的改进Hough变换法可以显著的提高直线提取的精度。

一些局限性仍然存在,伪点和伪线仍然大量存在,消除Hough变换中产生的伪线与过连接线的问题,检测的结果不是直线,而是具有确定长度和端点的线段,可以通过设置阈值的方法提高直线提取的精度,阈值的确定也需要反复计算和设计。

相关文档
最新文档