基于hough变换的直线检测
利用Hough变换实现直线的快速精确检测
第13卷 第2期2008年2月中国图象图形学报Journal of I m age and GraphicsVol .13,No .2Feb .,2008收稿日期:2006204225;改回日期:2006210217第一作者简介:滕今朝(1970~ ),男,讲师。
2007年于海军航空工程学院获测试计量仪器与科学专业硕士学位。
主要从事电气自动化、检测技术方面的教学和研究。
E 2mail:t w rite@利用Hough 变换实现直线的快速精确检测滕今朝1) 邱 杰2)1)(威海职业学院机电工程系,威海 264210) 2)(海军航空工程学院,烟台 264000)摘 要 利用Hough 变换对直线进行检测,通常存在“速度缓慢、结果不够精确”的问题,本文提出了“分式查表法”,能在大幅度减少Hough 变换的总计算量的情况下,检测精度保持最高,从而使超大型图像中,直线的实时、精确检测成为可能。
关键词 Hough 变换 参数空间 精度 分式查表法中图法分类号:TP391.41 文献标识码:A 文章编号:100628961(2008)022*******Fa st and Prec ise D etecti on of Stra i ght L i n e w ith Hough Tran sformTE NG J in 2zhao 1),Q I U J ie2)1)(E lectro m echanical Engineering D epart m ent,W eihai V ocational College,W eihai 264210)2)(College of N avy A viation Engineering,Yantai 264000)Abstract Pr oble m s as l ow s peed or inaccurate results in the p r ocess of line detecti on with Hough Transf or m re main unsatisfact orily s olved .This paper puts f or ward a ne w l ook 2up table t o decrease the computati on distinctly and keep ing the highest p recisi on .It offers the possibility in real 2ti m e app licati ons es pecially in large i m age .Keywords Hough Transf or m,para meter s pace,p recisi on,table l ook 2up1 引 言Hough 变换具有优异的鲁棒性和极佳的抗干扰能力,利用Hough 变换进行直线检测,是图像分析和计算机视觉的一个重要内容。
实现用hough变换检测直线算法
通过这次MATLAB的学习,我对MATLAB有了一个基础的认识, MATLAB是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程的特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂程序(M文件)后再一起运行。在这短短的一周内从开始的一头雾水,到自己看书学习,到同学讨论,再进行整个题目的理论分析和计算,参考课程上的代码,写出自己的代码。
(3-1)
根据3-1公式,原图像空间中的点对应新参数空间中的一条正弦曲线,即点- 正弦曲线对偶。检测直线的具体过程就是让θ取遍可能的值,然后计算ρ的值,再根据θ和ρ的值对累加数组累加,从而得到共线点的个数。下面介绍θ和ρ取值范围的确定。设被检测的直线在第一象限,右上角坐标为( m, n) ,则第一象限中直线的位置情况如图3.1所示。
图3.1坐标位置
由图3.1可见,当直线从与x轴重合处逆时针旋转时,θ的值开始由0°增大,直到180°,所以θ的取值范围为0°~180°。由直线极坐标方程可知:
(3-1)
(3-2)
所以当且仅当x和y都达到最大且θ+Φ=±90°时(根据<来调整θ的值)
(3-3)
,
即ρ取值范围 。
由θ、ρ的取值范围和它们的分辨率就可以确定累加器的大小,从而检测直线。
figure();
subplot(2,2,1);imshow(o);title('原图'); %% 提取图像边缘
[m,n]=size(f);%得到图像矩阵行数m,列数n
fori=3:m-2
for j=3:n-2%处理领域较大,所以从图像(3,3)开始,在(m-2,n-2)结束
l(i,j)=-f(i-2,j)-f(i-1,j-1)-2*f(i-1,j)-f(i-1,j+1)-f(i,j-2)-2*f(i,j-1)+16*f(i,j)-2*f(i,j+1)-f(i,j+2)-f(i+1,j-1)-2*f(i+1,j)-f(i+1,j+1)-f(i+2,j);%LoG算子
Hough变换检测直线
Hough 变换检测直线实验报告一,实验要求用hough 算法检测图像中的直线算法。
使用这一算法来求一幅图像中的所有大于规定长度的直线段,设规定的长度为20点。
二,Hough 变换简介Hough 变换是图像处理中从图像中识别几何形状的基本方法之一。
Hough 变换的基本原理在于利用点与线的对偶性,将原始图像空间的给定的曲线通过曲线表达形式变为参数空间的一个点。
这样就把原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题。
图1 Hough 变换)sin(sin cos 00θαθθρ+=+=A y x如上图所示,在图像空间,直线上一点),(00y x 转换到参数空间就是一条曲线,而且,图像空间同一直线上的点转换到参数空间的曲线一定相交于一点,即参数空间各曲线的交点对应着图像空间的一条直线,这样,检测参数空间曲线交点就检测出了图像空间的直线。
三,实验过程和结果分析用Hough 变换之前, 首先要对图像进行边缘检测的处理,也即霍夫线变换的直接输入只能是边缘二值图像。
本实验基于VS2008和OPENCV 来实现。
实验的步骤如下:(1)读入图像,转换成灰度图像OPENCV 中用cvLoadImage 函数来读取图像,函数原型:IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR );filename :要被读入的文件的文件名(包括后缀);flags :指定读入图像的颜色和深度;例如:cvLoadImage( fileame, -n1 ); //默认读取图像的原通道数cvLoadImage( filename, 0 ); //强制转化读取图像为灰度图 cvLoadImage( filename, 1 ); //读取彩色图(2)进行边缘检测本实验选择Canny算子的边缘检测,OPENCV中用Canny函数来进行Canny 算子的边缘检测,函数原型为:void cvCanny( const CvArr* image, CvArr* edges, double threshold1, double threshold2, int aperture_size=3 );image:单通道输入图像edges:单通道存储边缘的输出图像threshold1 :第一个阈值threshold2 :第二个阈值aperture_size :算子内核大小3,对检测出的二值图像进行Hough变换OPENCV中用cvHoughLines2函数来进行Hough变换,函数原型为:CvSeq* cvHonghLines2(CvArr* image,void* line_storage,int mehtod,double rho,double theta,int threshold,double param1 =0,double param2 =0);Image:输入8-比特、单通道(二值)图像line_storage:检测到的线段存储仓Method:Hough 变换变量,是下面变量的其中之一CV_HOUGH_STANDARD ——传统或标准Hough 变换CV_HOUGH_PROBABILISTIC——概率Hough 变换CV_HOUGH_MULTI_SCALE ——传统Hough 变换多尺度变种Rho:以象素为单位的距离精度,一般取1Theta:以弧度为单位角度精度,一般取CV_PI/180Threshold:阈值参数,当在一条直线上的像素点数大于threshold时,才将该直线作为检测结果显示出来,该值越大,得到直线越少。
基于Hough变换的平行直线检测改进算法研究
测 改进 算 法 ,将 采 集 到 的 图像 进 行 二值 化 处理 ,再 使 用 Sb l 子 对 该二 值 化 图像进 行 边缘 检 测 , oe 算 对 边 缘 检 测 得 到 的 图像 进 行 H u h 变 换 和 峰 值 点 检 测 , 峰 值 点 得 到 直 线 段 图像 , 后 使 用 本 文 提 出的 og 由 最
Ho h r n f r ug ta s o m
LV M e g n
(ol e f If mao c ne n E g er g, asa U i ri , iha ga 6 0 4, hn ) C l g o n r t n S i c ad n i e n Y nh n n es y Qn u ndo 0 60 C ia e o i e n i v t
中 图 分 类 号 :T 3 14 P 9 .1 文 献 标 识 码 :A 文 章 编 号 :1 7 — 7 0 2 1 17 0 2 — 3 6 4 7 2 (0 0 1 — 0 7 0
Re e r h o he m p o e pa a ll i de e to ag rt m ba e o s ac f t i r v d r le l ne t c i n l o ih sd n
K y wo d e r s: Ho g r n fr l a al lln ee t n;t r s od v l e u h t s i ;p r l i e d tc i a ol e o h e h l a u
在 遥 感 图 像 中 , 江 河 上 桥 梁 目标 的 识 别 具 有 重 要 对 意 义 。 由 于 桥 梁 的 最 突 出特 征 在 于 桥 体 的 平 行 直 线 , 所
基于Hough变换的直线检测程序资料
课程设计报告题目基于Hough变换的直线检测程序专业电子信息工程班级电子2013-02班学号20131573姓名陈涛指导教师黄进电气工程学院二〇一六年九月至二〇一六年十二月课程设计任务书摘要直线检测是图像处理中一个特别重要的研究课题,作为图像分割处理的基础。
在图像处理领域,直线特征经常是被用于高层处理,所以直线检测对于数字图像处理有着重要的意义。
同时在图像处理中,对直线的识别和定位也是很重要的。
例如在工程项目上经常要进行直线检测,对直线物体或图标进行模式识别和定位。
图像处理是人类视觉延伸的重要手段之一,可以达到使人们看到任意波长所测得的图像的目的。
图像处理是使用计算机对图像进行分析,以达到所需结果的技术,因而又称影像处理。
图像处理一般指数字图像处理。
数字图像是指用数字摄像机、扫描仪等设备经过采样和数字化得到的一个大的二维数组,该数组的元素称为像素,其值为一整数,称为灰度值.图像处理技术的主要内容包括图像压缩,增强和复原,匹配、描述和识别3个部分。
数字图像处理技术发展很快,给定形状图像的检测问题也是各种工程事项中经常碰到的一类问题,类直线形状图形的检测是其中主要的一类。
本文给出Hough变换的基本原理。
针对图像空间的直线检测问题,提出基于Hough变换的检测算法。
关键词:Hough变换;边缘检测;直线检测目录第一章绪论 (1)1.1数字图像处理与直线检测 (1)1.1.1图像工程 (1)1.1.2数字图像处理 (2)1.2图像检测技术发展历史及现状 (5)1.3直线检测课题存在的问题 (6)第二章编程工具和环境搭建 (7)2.1 OpenCV (7)2.2 Microsoft Visual Studio (8)2.3 环境搭建 (9)2.3.1安装OpenCV (9)2.4 OpenCV常用数据结构用法介绍 (11)第三章直线检测算法的实现 (13)3.1 Hough变换 (13)3.2 Hough变换原理 (13)3.3 基于Hough变换的直线检测的实现 (14)3.3.1直线检测的流程 (15)3.3.2直线检测算法分析 (15)3.3.3函数分析 (16)3.3.4显示程序运行的结果 (17)第四章结论 (18)参考文献 (19)附录 (20)第一章绪论1.1 数字图像处理与直线检测1.1.1 图像工程图像工程是将图像技术发展过程中出现的各种新理论、新方法、新技术、新设备等进行综合研究和集成应用的一个整体框架,科分为3个层次:(1)图像处理(Image Processing)强调在图像之间进行一定程度地变换,功能上主要是满足对图像进行加工处理以达到改善图像的视觉效果并为自动识别做好铺垫,或对图像进行压缩编码以减少所需存储空间和时间、传输通路的要求。
旧电影中基于Hough变换直线划痕的检测
0引言直线划痕是旧电影中常见的现象,也是旧电影修复与保护中一项重要的研究内容。
旧电影的修复与保护是近些年图像研究领域一个新的研究方向,它主要是对原有的旧电影利用数字修复的方法来达到保护旧电影的目的,并通过该方法来保护和继承民族文化。
直线划痕是指影片在播放过程中瞬间出现垂直或水平条纹的现象。
当旧影片中存在直线划痕会使旧影片的视觉效果受到影响,为了使旧影片具有原版播放的视觉效果,必须正确地检测出直线划痕的位置信息,利用划痕邻域的图像信息通过修复算法修复划痕区域丢失的图像信息。
Timothy K.Shih 、LouisH.Lin 等人提出了一种利用空间特性检测垂直划痕的方法并取得了较好检测与修复效果[1],但根据单帧的图像信息会存在错误检测的问题。
Rong-Chi Chang 等人在2007年提出了一种利用相邻帧空时域特征的斑点检测与修复方法,该算法主要包括3个关键的步骤:在检测阶段中把图像分解为图像块并通过分析相邻块的灰度特征获得具有斑点性质的图像块;检测结果过滤阶段对检测到的结果通过噪声过滤方法获得目标斑点;修复阶段用相邻图像块的信息修复斑点区域[2]。
文中主要是利用霍夫变换的方法检测旧影片中的直线划痕,霍夫变换方法是由P.V Hough 在1959年提出的一种可靠的直线检测算法[3]。
为了准确地检测出旧影片中的直线划痕,在算法中考虑到了直线划痕的长度因素,剔除那些不符合条件的直线划痕。
1旧电影修复与保护中国的电影有着百年的历史,旧的影片记录了中国的文化和历史,这些影片中绝大多数是以胶片的形式保存的。
目前国家的档案影片主要是以胶片形式进行存储的,胶片在恒温恒湿等特定条件下,其影像可以完好保存百年以上[4]。
旧影片由于受胶片保存条件、胶片本身物理和化学性质的影响,旧影片播放时的视觉效果会明显的下降。
通常胶片影片都有额定的播放次数,如果影片的播放次数超过额定的播放次数,影片的观看效果也会明显的下降。
胶片影片的播放器械对胶片带也有一定的损坏作用,因此也会导致胶片影片的播放效果逐渐地下降。
数字图像中的Hough变换应用--直线检测
数字图像中的Hough变换应用--直线检测沈阳理工大学数字图像处理课程设计摘要为能够有效解决实时直线图形提取问题,提出了一种基于Hough变换(HT)的直线提取算法。
它所实现的是一种从图像空间到参数空间的映射关系。
由于具有一些明显优点和可贵性质,它引起了许多国内外学者和工程技术人员的普遍关注。
由于其根据局部度量来计算全面描述参数,因而对于区域边界被噪声干扰或被其他目标遮盖而引起边界发生某些间断的情况,具有很好的容错性和鲁棒性。
多年来,专家们对Hough变换的理论性质和应用方法进行了深入而广泛的研究,目前应用于生物医学、自动化和机器人视觉、空间技术和军事防御、办公自动化等各个方面。
本次课称设计首先分析了数字图像中直线边缘的三种结构特征,提出采用基元结构表示目标边缘点,并在约束条件下计算基元结构的基元倾角。
在此基础上,结合传统的HT的思想对基元结构进行极角约束HT,以获得最终的直线参数。
最后,再用MATLAB软件对该算法进行编程仿真。
实验结果表明,对合成图像和自然图像,该算法能够有效的识别图像中的直线段。
关键词:直线提取;Hough变换;MATLABI沈阳理工大学数字图像处理课程设计目录1. 课程设计的目的 ................................ 1 2. MATLAB简介及应用 (1)2.1 MATLAB简介 (1)2.2 MATLAB应用 (1)2.3 MATLAB特点 (2)3. Hough变换原理 (2)3.1 Hough变换的基本原理 (2)3.2 Hough变换的不足之处 (4)3.3 Hough变换的应用 (4)4. Hough变换检测直线设计 (5)4.1 Hough变换检测直线基本原理 (5)4.2 Hough变换的几种基本算法 (6)4.3 Hough变换算法的比较与选择 (7)4.4 Hough变换检测直线的算法流程图 (9)4.5 Hough变换检测直线算法的实现 (9)5. 仿真结果及分析 (11)5.1 仿真结果 (11)5.2 结果分析 (14)结论 ............................................ 15 参考文献 (16)II沈阳理工大学数字图像处理课程设计数字图像中的Hough变换应用——直线的检测1. 课程设计的目的本次课程设计的目的在于提高发现问题、分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。
hough变换检测直线原理
hough变换检测直线原理Hough变换是一种常用的图像处理算法,用于检测图像中的直线。
该算法的原理基于直线上的点在参数空间中具有唯一的特征,通过对参数空间的投票来检测直线。
Hough变换最初是由Paul Hough于1962年提出的,用于在图像中检测直线。
该方法的基本思想是将直线表示为参数空间中的一个点,而不是在图像中的像素点。
这样可以将直线检测问题转化为参数空间中的点集聚类问题,从而简化了直线检测的过程。
在Hough变换中,直线可以表示为参数空间中的两个参数:rho (ρ)和theta(θ)。
参数rho表示直线到原点的距离,而参数theta表示直线与x轴的夹角。
对于给定的图像点(x, y),可以通过以下公式计算rho和theta的值:rho = x * cos(theta) + y * sin(theta)在Hough变换中,我们需要创建一个二维的参数空间,其中rho 的范围为[-D, D],theta的范围为[0, 180°],D是图像对角线的长度。
然后遍历图像中的每个像素点,对每个像素点计算rho和theta的值,并在参数空间中对应的位置进行投票。
投票过程中,我们将参数空间中的每个点初始化为0。
对于每个图像点,如果它处于某条直线上,那么对应的参数空间中的点就会累加投票数。
最终,参数空间中投票数较高的点对应的直线就是我们要检测的直线。
为了提高算法的效率,通常会使用累加器数组来存储参数空间中的投票数。
累加器数组的大小根据参数空间的分辨率来确定,分辨率越高,算法的精度也就越高。
在累加器数组中,每个元素对应参数空间中的一个点,其值表示该点的投票数。
在实际应用中,Hough变换通常会与边缘检测算法结合使用,以便检测图像中的直线。
常用的边缘检测算法有Canny算法和Sobel 算法。
边缘检测算法可以将图像中的边缘点提取出来,从而减少了Hough变换的计算量。
Hough变换在计算机视觉和图像处理领域有着广泛的应用。
一种基于改进Hough变换的直线快速检测算法
A s at H u ht nfr ( T s oua o f n e ci u s outeson i n sigdt. b t c : o g a s m H )i app l t lo l edt t nd e oi b s s t os a dmi n a r r o ro r i e o t tr n e s a
确地检测出图像 中相应的直线。实验表 明 , 与传统 H u h og 变换相 比, 改进后的算法计算量小 , 节省 内存 , 无需先验知识 , 且抗干 扰性有显著提高 , 并降低了误检率和漏检率 。 关键词 : 像素点聚类 ; 感知编组 ;随机 H uh变换 ;直线检测 ; og 快速检测
D a ui , h oWe,H a gSn l g C e i y u nR j o Z a i un ogi , h nJ ne a n a
(tt KyL bo o e Ss m, eat etfEetcl n i e n ,Tig u nv sy Bin 08 , hn ) Sa e a e fPw r yt Dp r n o l r a E gn r g s h aU ir t, eig1 0 4 C i e m ci ei n ei j 0 a
第3卷 第1 1 2期 21 00年 1 2月
仪 器 仪 表 学 报
C i e e J u n lo ce t cI s u n h n s o r a f ini n t me t S i f r
V0.31 1 No 2 .1
De e.2 0 Ol
一
种 基 于 改 进 Ho g u h变 的 直 线 快 速 检 测 算 法 木 8 ) 0 04
( 清华大学电机系电力系统 国家重点实验室 摘
基于霍夫变换的灰度离散数据直线检测技术
[摘要]本文以飞思卡尔智能车比赛为背景,利用摄像头作为传感器件获得赛道信息并得到赛道的灰度图像,然后利用霍夫变换将灰度离散数据变换到霍夫空间得到赛道引导线的信息,为智能车控制提供控制量。
[关键词]飞思卡尔;摄像头;霍夫变换;直线检测基于霍夫变换的灰度离散数据直线检测技术张鹏飞毛琼(军械工程学院导弹工程系,河北石家庄050003)在飞思卡尔智能车竞赛中,比赛赛道是由两条黑色边缘线构成的如图1,赛道背景比较简单,对于采用摄像头作为传感器的智能小车如果我们能够准确检测出黑线情况就可以更好的对小车进行控制。
这里我们采用霍夫(Hough )变换对摄像头得到的灰度图像进行直线检测,得到了比较好的效果。
图1赛道1Hough 变换原理Hough 变换的基本思想是将图像空间变换到Hough (参数)空间,用图像中大多数点描述Hough 空间中的某种参数形式来描述图像空间中的线,通过设置累加器进行记忆,求的峰值对应点的信息。
Hough 的最大优点是将图像空间中的较难的全局最优问题转化为Hough 空间中相对较简单的峰值问题。
1962年,Paul Hough 提出利用数学对偶原理提出了检测图像空间直线的新方法,该方法经过众多学者的研究发展取得的比较好的应用效果,目前Hough 主要应用于二值图像空间中的直线检测。
imagespaceHoughspace图2imagespace 与Houghspace图3直角空间与Hough 空间直角空间中的一条直线对应Hough 空间中的一个点(m0,b0),见图2,如图3所示,平面直角坐标系当中直线L 0的表达式为:L 0:y=kx+b(1)式(1)当中k 为直线斜率,b 为直线的截距,直角坐标系中直线L上不同的点变换到Hough 空间中为不同直线的交点。
即Hough 空间中两条线的交点(k 0,b 0)用来表示过点(x 1,y 1)和点(x 2,y 2)的直线。
可见,如果能够找到Hough 空间中的点P 就能确定图像空间中的一条直线。
旧电影中基于Hough变换直线划痕的检测
析 了直 线 划 痕 产 生 的 原 因 、 本 特 征 、 测 方 法 。 在 分 析 H uh原 理 的 基 础 上 , 出 了 一 种 基 于 Hog 基 检 og 提 u h变换 的 直 线 划痕 检 测
Ab t a t T r t c l v e n ai n l i e r h v s t eme h d o t ma i so ai n o l v e d v d o a c ie S sr c : o p o e t d mo isa d n to a d o a c i e . h t o f u o t r t rto f d mo i s o v a ce o n a i e r h v si su id T fe t e y d tc c ac n s wh c r o td e . o e c i l ee ts r th 1 e ih ae c mmo n o d mo i s i a s fe r e c , b sc f a u e d d tc in v i n o l v e , t c u e o me g n e s a i e t r sa ee t n o meh d r ay e . Afe n l zn e a i r cp e f u h t n f r , an w l o tm f c a c n ee t n b s do u h t o s ea l z d a n t a ay i gt scp n i l Ho g a so m r h b i o r e ag r h o s r th l ed t c i a e n Ho g i i o ta so m r p s d I i d c t s h t h l o t m al fe t ey d t c es r t h l e n o dmo i s a da s r v d e r t a r f r i p o o e . t n i ae a e ag r h c l e ci l ee t h c a c n s l v e , n lop o i et o ei l n s t t i v t i o h c b ssf r n an i g a t mai d r a ia in f u d t n a i o p it uo t a l t n ai . i n cn e z o o o Ke r s o d mo is a t ma i s r t n s r t h l e Ho g a s r ywo d : l v e ; u o t r t ai ; c a c n ; ce o o i u htn f m; s r t hl ed t ci n r o c a c n ee t i o
一种新的基于hough变换的直线识别方法
一种新的基于hough变换的直线识别方法
Hough变换是一种基本的几何转换,可以将点集与特定形状的关系转换为参数空间中的直线集合。
Hough变换在计算机视觉领域中被广泛应用,尤其是在图像分析和模式识别中的直线检测中。
传统的Hough变换直线识别算法通常使用二维参数空间(斜率和
截距),但这种方法存在计算复杂度高,噪音敏感等问题。
为了解决
这些问题,近年来出现了一种新的基于Hough变换的直线识别方法,
该方法使用极坐标参数空间(角度和距离),具有较高的鲁棒性和计
算效率。
该方法的实现过程首先将图像进行边缘检测,然后将边缘点转换
为极坐标系下的参数空间点。
在极坐标参数空间中,一条直线将对应
一个点附近的集合,而这个集合可以通过匹配算法进行识别,最终确
定直线的参数。
这种基于Hough变换的直线识别方法可以有效地应对图像噪声和
复杂背景的影响,同时具有较高的计算效率和识别精度。
在实际应用中,可以将该方法与其他图像处理算法相结合,实现更为准确的目标
检测和跟踪。
总之,基于Hough变换的直线识别方法是计算机视觉领域中一种
非常实用的技术,其应用范围广泛,从工业检测到日常生活都具有重
要的应用价值。
因此,我们需要不断探索和研究该方法的优化和改进,以更好地满足实际需要。
基于改进Hough变换的直线检测方法研究
基于改进Hough变换的直线检测方法研究作者:严培荣王超厉丹来源:《电脑知识与技术》2018年第26期摘要:Hough变换不仅可以用来检测规则的直线,也可以对其他许多形状的物体进行识别,但由于阈值设定的问题对短直线的检测会受到长直线的影响而效果不好,且该变换仅检测直线,无法记录检测直线的起始点和终止点。
为此,该文提出一种改进过的Hough变换算法更好的检测遥感图像中的直线。
关键词:Hough变换;检测直线中图分类号:TP391.4 文献标识码:A 文章编号:1009-3044(2018)26-0157-02Abstract: Hough transform can be used not only to detect straight lines, but also to identify many other objects. However, due to the problem of threshold setting, the detection of short straight line will be affected by the long straight line and the result is not good. And the transformation only detects the straight line, and can not record the starting point and ending point of the detection line. For this reason, this paper proposes an improved Hough transform algorithm to detect straight lines in remote sensing images better.Key words: Hough transformation; Aightline detection1 概述Hough变换是图像处理中常用的基本方法之一。
数字图像中的Hough变换应用--直线检测
数字图像中的Hough变换应用--直线检测摘要为能够有效解决实时直线图形提取问题,提出了一种基于Hough 变换(HT)的直线提取算法。
它所实现的是一种从图像空间到参数空间的映射关系。
由于具有一些明显优点和可贵性质,它引起了许多国内外学者和工程技术人员的普遍关注。
由于其根据局部度量来计算全面描述参数,因而对于区域边界被噪声干扰或被其他目标遮盖而引起边界发生某些间断的情况,具有很好的容错性和鲁棒性。
多年来,专家们对Hough变换的理论性质和应用方法进行了深入而广泛的研究,目前应用于生物医学、自动化和机器人视觉、空间技术和军事防御、办公自动化等各个方面。
本次课称设计首先分析了数字图像中直线边缘的三种结构特征,提出采用基元结构表示目标边缘点,并在约束条件下计算基元结构的基元倾角。
在此基础上,结合传统的HT的思想对基元结构进行极角约束HT,以获得最终的直线参数。
最后,再用MATLAB软件对该算法进行编程仿真。
实验结果表明,对合成图像和自然图像,该算法能够有效的识别图像中的直线段。
关键词:直线提取;Hough变换;MATLAB目录1. 课程设计的目的 (1)2. MATLAB简介及应用 (1)2.1 MATLAB简介 (1)2.2 MATLAB应用 (1)2.3 MATLAB特点 (2)3. Hough变换原理 (2)3.1 Hough变换的基本原理 (2)3.2 Hough变换的不足之处 (4)3.3 Hough变换的应用 (4)4. Hough变换检测直线设计 (5)4.1 Hough变换检测直线基本原理 (5)4.2 Hough变换的几种基本算法 (6)4.3 Hough变换算法的比较与选择 (7)4.4 Hough变换检测直线的算法流程图 (9)4.5 Hough变换检测直线算法的实现 (9)5. 仿真结果及分析 (11)5.1 仿真结果 (11)5.2 结果分析 (14)结论 (15)参考文献 (16)数字图像中的Hough变换应用——直线的检测1.课程设计的目的本次课程设计的目的在于提高发现问题、分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。
基于改进hough变换的直线图形快速提取算法
基于改进hough变换的直线图形快速提取算法摘要:Hough变换是一种重要的图形学算法,它可以快速提取出图像中的直线特征信息。
但由于Hough变换的实现比较复杂,其计算时间较长,在实际应用中,采用Hough变换算法容易发生计算量众大的问题。
为了改善Hough变换算法计算量过大问题,本文提出了一种基于改进Hough变换的快速直线提取算法。
实验结果表明,改进Hough 变换算法与传统Hough变换算法相比,可以显著提高直线提取的准确率和速度。
关键词:Hough变换;改进Hough变换;直线提取1.言1.1 Hough变换Hough变换(HT)是一种非常有效的图像处理技术,它可以快速提取图像中的几何形状信息,如线、圆、椭圆等。
Hough变换的英文原意是“域(Field)”,它是由梯度下降算法的简单概念演变而来,依据的原理类似于一个投票机制,先将图像上的点变换到一种新的域中,再对域内的相同特征进行计数,最后根据计数情况判断出特征形状。
HT算法可以快速提取图像中的几何形状,其优势是显而易见的:现有的其他算法都基于梯度变化函数,只能提取到图像中比较明显的几何形状;而HT算法可以根据相应的几何形状计算出对应的几何参数,从而实现更精确的图像表示。
1.2进Hough变换当前Hough变换的应用范围日益广泛,目前主要的应用有纹理分析、面部识别等。
然而,Hough变换虽然能够快速提取出图像中的几何特征,但实现起来非常复杂,其计算时间较长,在实际应用中,采用Hough变换算法容易发生计算量众大的问题。
为了改善Hough变换算法计算量过大问题,近年来提出了一种改进的Hough变换算法(Improved Hough Transform,IHT),它可以有效地提高直线提取的准确率和速度。
2.法原理2.1进Hough变换算法的基本原理改进的Hough变换算法基于Hough变换的基本原理,主要用于直线提取。
根据Hough变换的基本原理,图像中的点可以通过变换到一个新的域中,根据计数结果判断出特征形状,改进的Hough变换算法也是基于此原理演变而来的,但它引入了一种新的算法,可以有效地减少计算量,加快直线提取的速度。
基于改进hough变换的直线图形快速提取算法
基于改进hough变换的直线图形快速提取算法图形识别是计算机视觉中一个重要的研究方向,在计算机视觉中,图像识别技术对其他研究有重要意义,这个技术用于图像中的直线特征快速提取至关重要。
Hough变换是一种常用的用于直线特征提取的算法,它能够正确地检测出图像中的线段特征,但在图像中的噪声度较高的情况下,其提取效果可能会受到影响。
2、究方法为了提高Hough变换的检测效果,采用改进的Hough变换算法,进行图像中的直线特征提取。
该算法通过添加有限块阈值,大大减少了检测线段特征时,需要处理的像素点个数,进而提高了计算效率,减少了计算负荷。
在实验中,采用MATLAB编程语言,针对改进的Hough 变换算法,对实际的图像进行直线特征的快速提取,分析了噪声环境下,改进的Hough变换算法的精度和提取速度。
二、验结果1、验过程首先,通过设置有限块阈值,完成了计算机图像图像处理和检测轮廓线。
然后采用改进的Hough变换算法,对图像中的线段特征进行快速提取,再按照预定的标准,检测线段特征的位置与方向,最后汇总实验结果,并对实验结果进行分析。
2、度分析结果表明,在添加有限块阈值的情况下,使用改进Hough变换算法,能够有效地减少检测时,需要处理的像素点数量,进而提高算法的检测精度,有效地抵抗高噪声环境的影响,使得检测精度更高。
3、度分析通过实验,发现改进的Hough变换算法,能够有效地提高算法的执行效率,与传统Hough变换算法相比,改进Hough变换算法的算法执行效率可提高50%以上,提高了直线特征提取算法的效率。
三、结以上算法成功地提取了图像中的线段特征,有效地抵抗噪声环境的影响。
改进的Hough变换算法,主要是通过添加有限块阈值的方式,减少了检测线段特征时,需要处理的像素点个数,进而提高了计算效率,提高了检测精度,且提高了算法执行效率。
可以准确地识别出图像中的线段特征,为计算机视觉方向的研究提供了新的思路。
四、论经过实验,改进的Hough变换算法的效果优于传统的Hough变换算法,能够有效地提高检测精度和算法执行效率,准确地识别出图像中的线段特征,为计算机视觉研究提供了新的思路。
pythonhough变换检测直线的实现方法
pythonhough变换检测直线的实现⽅法1 原理2 检测步骤将参数空间(ρ,θ) 量化成m*n(m为ρ的等份数,n为θ的等份数)个单元,并设置累加器矩阵,初始值为0;对图像边界上的每⼀个点(x,y)带⼊ρ=xcosθ+ysinθ,求得每个θ对应的ρ值,并在ρ和θ所对应的单元,将累加器加1,即:Q(i,j)=Q(i,j)+1;检验参数空间中每个累加器的值,累加器最⼤的单元所对应的ρ和θ即为直⾓坐标系中直线⽅程的参数。
3 接⼝image:⼆值图像,canny边缘检测输出。
这⾥是result。
rho: 以像素为单位的距离精度,这⾥为1像素。
如果想要检测的线段更多,可以设为0.1。
theta:以弧度为单位的⾓度精度,这⾥为numpy.pi/180。
如果想要检测的线段更多,可以设为0.01 * numpy.pi/180。
threshod: 阈值参数,int类型,超过设定阈值才被检测出线段,这⾥为10。
minLineLength:线段以像素为单位的最⼩长度。
maxLineGap:同⼀⽅向上两条线段判定为⼀条线段的最⼤允许间隔。
4 代码及结果import osimport numpy as npimport cv2from PIL import Image, ImageEnhanceimport mathdef img_processing(img):# 灰度化gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU)# canny边缘检测edges = cv2.Canny(binary, 50, 150, apertureSize=3)return edgesdef line_detect(img):img = Image.open(img)img = ImageEnhance.Contrast(img).enhance(3)# img.show()img = np.array(img)result = img_processing(img)# 霍夫线检测lines = cv2.HoughLinesP(result, 1, 1 * np.pi/180, 10, minLineLength=10, maxLineGap=5)# print(lines)print("Line Num : ", len(lines))# 画出检测的线段for line in lines:for x1, y1, x2, y2 in line:cv2.line(img, (x1, y1), (x2, y2), (255, 0, 0), 1) passimg = Image.fromarray(img, 'RGB')img.show()if __name__ == "__main__":line_detect("1.jpg")pass原图如下:检测结果:以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
基于Hough变换检测直线的研究
基于Hough变换检测直线的研究
张吉玲
【期刊名称】《福建电脑》
【年(卷),期】2009(025)004
【摘要】Hough变换是图像处理中的一种常用的检测算法,能够有效地在较大的噪声环境中提取图像中的特定信息.本文主要介绍了标准Hough变换算法以及为了降低标准Hough变换算法的时间复杂度而提出的快速Hough变换算法.【总页数】2页(P89-90)
【作者】张吉玲
【作者单位】山东英才学院,山东,济南,250000
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于彩色空间转换与Hough变换的直线检测 [J], 刘镇岐;汤本俊;陈若珠
2.基于Hough变换的平行直线检测改进算法研究 [J], 吕萌
3.基于改进Hough变换的直线检测方法研究 [J], 严培荣;王超;厉丹
4.基于改进Hough变换的红外图像直线检测 [J], 喻小龙;肖永生;聂江华;毛聪
5.基于改进Hough变换的红外图像直线检测 [J], 喻小龙;肖永生;聂江华;毛聪因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(b)参数空间中相交于同一点的直线
图2
图像空间中的直线与参数空间中的点对偶性示意图
在计算过程中,为了便于通过累加和统计的方法, 找到参数空间中最大值点的位置,将参数空间进 一步划分为二维的累加器数组A[k][b]。二维累加 器数组的示意图如图3所示,其中[kmin,kmax]和 [bmin,bmax]分别为斜率和截距期望值的范围。
Hough变换介绍
Hough变换的概念是1962年Paul Hough提出来的,它利用图像空间和 参数空间的点-线对偶性,将图像空间 中具有一定关系的像素点在参数空间 中进行聚集,通过在参数空间进行简 单的累加和统计,找出参数空间中累 加器的峰值点,进而确定出图像空间 中特定几何特征的相关参数。
图像空间中的任意一个点映射到参数 空间中是一条直线,图像空间中位于 同一直线上的点映射到参数空间中是 一组相交于同一点的直线,反过来, 参数空间中相交于同一点的所有直线, 在图像空间中与之对应的是在同一直 线上的一组点。
实现效果
(a)原始图像
(b)检测出的直线图
但是,考虑到计算量的问题,要对图像进 行边缘检测和感兴趣区域的划分。
பைடு நூலகம்
原始图像
Roberts算子
Sobel算子
Guass-Laplace算子
在道路背景图像中车道线并没有占据整个 图像区域,而是在图像的下半部分,基于 这个特点,在进行车道线检测之前,先确 定出车道线的感兴趣区域,再对车道线感 兴趣区域进行处理,将大大减少计算量、 提高后续检测算法的精确度。
通过式(1)和式(2)可以看出,图像空间中的 任意一个点(x0,y0)对应于参数空间中的一条直线 b=-kx0+y0,而图像空间中的一条直线又是由参数空 间中的一个点(k0,b0)决定的。
(a)图像空间中的一个点
(b)参数空间中的一条直线
图1 图像空间中的点与参数空间中的直线对偶性示意图
(a)图像空间中位于同一直线上的点
建立一个直角坐标系作为图像平面的坐标系,在 图像空间X-Y中,共线的点可以用直线方程描述 为: y=kx+b (1 ) 其中k和b是直线的两个参数,分别表示直线的斜 率和截距。同时还可以将式(1)改写为: b=-xk+y (2 ) 式(2)可以看做是参数平面K-B中的一条直线, 其中x为直线的斜率,y为直线的截距。
本论文所确定的车道线感兴趣区域为图像的下1/3 部分。如下图所示,图像中虚线以下的部分为车 道线感兴趣区域,其中 ,Height为图像的高度, Width为图像的宽度,车道线感兴趣区域为 。
车道线感兴趣区域示意图
车道线检测效果图
图3
K-B参数空间中的二维累加器数组
确定图像空间中所有直线参数的具 体步骤如下:
(1) k和 b的量化数值如上所述,在堆内存中分配一个变换 域空间,即参数空间的变换域数组,并将其初始化为零; (2)读入一副图像,遍历整幅图像,判断每一个像素点是 否为黑点; (3)对每一个黑点,进行处理,按照 k和 b的量化数值在变 换域累加器数组中的相应位置上加1; (4)遍历累加器数组,每找到一个局部最大值,判断该局 部最大值是否大于所设置的阈值,若是,则将该最大值及 其位置存放在上述定义的数组的一个元素中,并将该局部 最大值附近的点清零,以便寻找下一个局部最大值,直到 遍历整个数组找到的最大值小于设置的阈值为止。