百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

一种图像亚像素边缘检测算法的改进研究

haoteby 2024-12-23 10:28 14 浏览

摘 要: 为了提高刀具预调测量仪的检测精度,提出了一种改进的图像快速亚像素边缘检测算法——基于正交多项式拟合的亚像素边缘检测算法。首先,利用传统的Sobel算子完成边缘点整像素级别的检测,确定边缘的主体区域;然后,过边缘点沿边缘法线方向拓展像素,取一系列像素点并计算其灰度值;最后根据像素点灰度分布的数学特征,利用正交多项式和最小二乘法求拟合函数,通过拟合曲线确定图像边缘点的精确位置,实现图像亚像素边缘检测。实验证明,该算法运行时间短,约为0.63 s;检测精度高,可达0.1 pixels。

0 引言

在机械加工时,刀具的几何参数对数控机床的生产效率和加工质量有着重大影响,因此,刀具必须在使用前明确其精确参数。目前,国内常用的刀具测量方法,如机械式测量法、光学投影法等已无法满足现代工业生产的要求,以图像处理为核心的图像测量技术具有高精度、高效率、非接触和自动化程度高等优点,能实现对刀具参数的精确检测。图像测量技术的实质是提取刀具精确的轮廓边缘,边缘检测是图像处理的基础和关键。传统的边缘检测算法,如Sobel算子、Canny算子、LOG算子等虽然其形式简单,易实现,速度快,但检测精度不理想,仅能达到整像素级别,且对噪声特别敏感,常产生伪边缘。欲提高检测系统的精度,通过优化算法的软处理比提高系统硬件分辨率的硬处理更加实用、有效[1]。

提出一种改进的图像亚像素边缘检测算法,利用传统的Sobel算子和五次正交多项式最小二乘拟合原理实现边缘精定位。

1亚像素边缘检测算法理论

1.1边缘主体区域粗定位

Sobel算子既能确定边缘点的位置和方向,还能根据像素点上下、左右邻点的灰度加权差,对噪声具有平滑作用,能提供较好的图像边缘信息,所以在边缘主体区域粗定位时选用Sobel算子。Sobel算子是一种梯度幅值,其表现形式为:

其中,M(x,y)是像素点灰度值,Sx、Sy分别是边缘点横向、纵向的检测灰度值。当M(x,y)大于给定的阈值时,可确定点(x,y)为边缘点,并根据Sx、Sy判断梯度方向,

=arctan(Sy/Sx)。从图1可以看出,Sobel算子对边缘主体区域粗定位有很好的效果[2]。

1.2 边缘亚像素精定位

CCD是光强积分器件,在CCD采样过程中,物空间突变的灰度在光学成像后会成为渐变的形式。如图2(a)所示,图像两侧分别表示背景和物体各自内部的灰度变化情况,两者之间表示图像边缘附近的灰度变化情况;如图2(b)所示,沿边缘法线方向,物体与背景内部区域的灰度差分值微小,而边缘附近的灰度差分最大,这就是经典边缘提取的理论。

以上述理论为基础,对过粗定位所得边缘点,沿边缘法线方向拓展像素,得到一系列过边缘线的像素点,求得这些点对应的灰度值,然后根据这些点灰度分布的数学特征,利用五次正交多项式最小二乘法拟合原理求得拟合函数与曲线,再根据拟合曲线确定图像边缘亚像素点的位置,从而实现边缘点的亚像素精确定位,这就是本文改进的亚像素边缘检测算法的原理。

1.2.1 正交多项式拟合函数

在实际应用中,要在保证检测精度的前提下尽可能地缩短运算时间,从而提高运算效率,因此选择适当数量的边缘点是十分重要的。选点过多会增加运算时间,降低效率;选点过少会降低检测精度,定位不准。综合以上因素,本课题选取5个像素点,横坐标x代表像素值,其取值分别设为-2、-1、0、1、2,其纵坐标y代表各点对应的灰度值。根据施密特正交化公式[3]可得正交基函数,如式1所示。

为了能取得较理想的拟合效果,选取[G0(x),G1(x),G2(x),G3(x),G4(x),G5(x)]为基底进行拟合,拟合函数方程为:

F5(x)=a0·G0(x)+a1·G1(x)+a2·G2(x)+a3·G3(x)+a4·G4(x)+a5·G5(x)(2)

其中,a0、a1、a2、a3、a4、a5是五次正交多项式函数的未知系数[4]。

假设任一坐标点(xi,yi)的横、纵坐标随机误差分别为pi、qi,则实测点坐标到拟合曲线的距离残差为:

全部点到曲线的距离残差平方和为:

求取式(4)最小值min(S)时,根据正交多项式最小二乘法拟合原理推导得系数为:

直接使用式(5)求多项式系数计算量大,较困难,且不能直观体现各变量之间的内在规律与联系,因此对公式进行变换转化为如下更直观的矩阵表达式:

由式(6)可求得多项式系数值:

将式(7)代入式(2)得拟合函数F5(x):

1.2.2 计算图像边缘位置

根据亚像素边缘检测原理可知,拟合函数表达式F5(x)是以点的灰度值为基本元素求得的。从数学意义上来讲,F5(x)描述了图像边缘线的情况,而函数一阶微分

则描述了边缘线变化程度的情况,即点的灰度值变化率的情况。那么,函数二阶微分

则描述了点的灰度值变化率的变化情况。

由以上分析可知,亚像素点的位置就是点的灰度值变化率变化最大的位置,依据极值求解条件,将函数F5(x)对x求二阶微分并令其等于零,即

求得x的数值即是亚像素点的位置。

2 亚像素边缘检测算法的实验

利用Visual C++6.0语言在MATLAB V201b2软件平台编写Sobel算子和本文改进的算法程序实现对图像的数字处理。

实验1 算法抗噪性能研究

图像信噪比等于信号与噪声的功率谱之比。由此可知,边缘点的检测精度与噪声成负相关关系。分别用两种算法处理图像,效果如图3所示。可以看出,本文算法与Sobel算子相比同样具有完整且较细的边缘,但前者生成的噪点明显更少,因而具有更好的抗噪声性能。

实验2 算法检测精度研究[5]

制作了尺寸为100×100的二值化图像,如图4所示。白色矩形所在区域的灰度值为0,其余背景灰度值为255,底边在图像第20行、第20~80列位置上。首先提取了部分边缘点理论坐标值,再使用改进的算法处理图像并提取了相应边缘点的亚像素坐标检测值,如表1所示。通过分析与计算可知改进算法的检测精度。

以单个像素点坐标理论值与检测值的坐标差值作为算法偏差,经计算可得其标准偏差约为0.1 pixels。

实验3 算法时间研究

取尺寸为1 600×1 455的同一图像在同一实验平台进行多次测试,得到多组运行时间,如表2所示。为了提高数据的可靠性,首先从数据中去掉一个最小值和一个最大值,再求取其他组的平均值作为运行时间。经计算,Sobel处理时间约为0.34 s,本文算法的处理时间约为0.63 s。

3 结束语

从理论分析与仿真实验可以看出,本文改进的亚像素边缘检测算法具有抗噪性能强、检测精度高、运行速度快的优点,主要适用于对处理速度和检测精度要求较高的机器视觉检测系统,而且已试用于数控机床刀具预调测量仪,极大地提高了数控机床的效能,运行稳定、可靠。

参考文献

[1] 李东光,景芳盛,张国雄.计算机视觉二维刀具预调测量仪的研究[J].制造技术与机床,2001(5):20-22.

[2] 刘力双,张铫,卢慧卿,等.图像的快速亚像素边缘检测算法[J].光电子·激光,2005,16(8):993-996.

[3] 王新民,术洪亮.工程数学计算方法[M].北京:高等教育出版社,2005.

[4] 徐中宇,宁闯,周亚洲.一种快速亚像素边缘检测算法[J].吉林大学学报(理学版),2014,52(2):308-313.

[5] PERKINS W A. INSPECTOR: a computer vision system which Learn to inspect parts[C]. IEEE Trans. on Pattern Analysis and Machine Intelligence,PAMI-5,1983:584-592.

相关推荐

一日一技:用Python程序将十进制转换为二进制

用Python程序将十进制转换为二进制通过将数字连续除以2并以相反顺序打印其余部分,将十进制数转换为二进制。在下面的程序中,我们将学习使用递归函数将十进制数转换为二进制数,代码如下:...

十进制转化成二进制你会吗?#数学思维

六年级奥赛起跑线:抽屉原理揭秘。同学们好,我是你们的奥耀老师。今天一起来学习奥赛起跑线第三讲二进制计数法。例一:把十进制五十三化成二进制数是多少?首先十进制就是满十进一,二进制就是满二进一。二进制每个...

二进制、十进制、八进制和十六进制,它们之间是如何转换的?

在学习进制时总会遇到多种进制转换的时候,学会它们之间的转换方法也是必须的,这里分享一下几种进制之间转换的方法,也分享两个好用的转换工具,使用它们能够大幅度的提升你的办公和学习效率,感兴趣的小伙伴记得点...

c语言-2进制转10进制_c语言 二进制转十进制

#include<stdio.h>intmain(){charch;inta=0;...

二进制、八进制、十进制和十六进制数制转换

一、数制1、什么是数制数制是计数进位的简称。也就是由低位向高位进位计数的方法。2、常用数制计算机中常用的数制有二进制、八进制、十进制和十六进制。...

二进制、十进制、八进制、十六进制间的相互转换函数

二进制、十进制、八进制、十六进制间的相互转换函数1、输入任意一个十进制的整数,将其分别转换为二进制、八进制、十六进制。2、程序代码如下:#include<iostream>usingna...

二进制、八进制、十进制和十六进制等常用数制及其相互转换

从大学开始系统的接触计算机专业,到现在已经过去十几年了,今天整理一下基础的进制转换,希望给还在上高中的表妹一个入门的引导,早日熟悉这个行业。一、二进制、八进制、十进制和十六进制是如何定义的?二进制是B...

二进制如何转换成十进制?_二进制如何转换成十进制例子图解

随着社会的发展,电器维修由继电器时代逐渐被PLC,变频器,触摸屏等工控时代所替代,特别是plc编程,其数据逻辑往往涉及到数制二进制,那么二进制到底是什么呢?它和十进制又有什么区别和联系呢?下面和朋友们...

二进制与十进制的相互转换_二进制和十进制之间转换

很多同学在刚开始接触计算机语言的时候,都会了解计算机的世界里面大多都是二进制来表达现实世界的任何事物的。当然现实世界的事务有很多很多,就拿最简单的数字,我们经常看到的数字大多都是十进制的形式,例如:我...

十进制如何转换为二进制,二进制如何转换为十进制

用十进制除以2,除的断的,商用0表示;除不断的,商用1表示余0时结束假如十进制用X表示,用十进制除以2,即x/2除以2后为整数的(除的断的),商用0表示;除以2除不断的,商用1表示除完后的商0或1...

十进制数如何转换为二进制数_十进制数如何转换为二进制数举例说明

我们经常听到十进制数和二进制数,电脑中也经常使用二进制数来进行计算,但是很多人却不清楚十进制数和二进制数是怎样进行转换的,下面就来看看,十进制数转换为二进制数的方法。正整数转二进制...

二进制转化为十进制,你会做吗?一起来试试吧

今天孩子问把二进制表示的110101改写成十进制数怎么做呀?,“二进制”简单来说就是“满二进一”,只用0和1共两个数字表示,同理我们平常接触到的“十进制”是“满十进一”,只用0-9共十个数字表示。如果...

Mac终于能正常打游戏了!苹果正逐渐淘汰Rosetta转译

Mac玩家苦转译久矣!WWDC2025苹果正式宣判Rosetta死刑,原生游戏时代终于杀到。Metal4光追和AI插帧技术直接掀桌,连Steam都连夜扛着ARM架构投诚了。看到《赛博朋克2077》...

怎么把视频的声音提出来转为音频?音频提取,11款工具实测搞定

想把视频里的声音单独保存为音频文件(MP3/AAC/WAV/FLAC)用于配音、播客、听课或二次剪辑?本文挑出10款常用工具,给出实测可复现的操作步骤、优缺点和场景推荐。1)转换猫mp3转换器(操作门...

6个mp4格式转换器测评:转换速度与质量并存!

MP4视频格式具有兼容性强、视频画质高清、文件体积较小、支持多种编码等特点,适用于网络媒体传播。如果大家想要将非MP4格式的视频转换成MP4的视频格式的话,可以使用MP4格式转换器更换格式。本文分别从...