一种图像中直线测量方法、装置、设备及存储介质与流程

文档序号:15888806发布日期:2018-11-09 19:56阅读:156来源:国知局
一种图像中直线测量方法、装置、设备及存储介质与流程

本发明涉及图像处理技术领域,特别涉及一种图像中直线测量方法、装置、设备及存储介质。

背景技术

现有技术中,经常需要对一些物体的直线边缘进行测量,以确定物体的具体尺寸。通常人们会选择人工测量的方式来进行测量,不过这种方式测量精度较低,并且需要消耗大量的时间成本。为了减少直线测量过程所消耗的时间成本,人们逐渐开始利用机器视觉来进行直线测量,不过传统的用于测量直线信息的机器视觉算法依然存在测量结果精度低、可靠性较差等问题。综上,如何进一步改善直线测量效果是目前有待解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种图像中直线测量方法、装置、设备及存储介质,能够有效改善直线测量效果。其具体方案如下:

第一方面,本申请公开了一种图像中直线测量方法,包括:

在相机标定结束后,获取相机采集到的待检测图像;

从所述待检测图像中提取目标物体的图像区域,得到待检测区域;

对所述待检测区域进行灰度均匀化处理,得到处理后图像;

利用canny边缘检测算法提取所述处理后图像中的边缘,得到边缘图像;

利用hough变换法测量所述边缘图像中的直线,得到直线信息。

可选的,所述相机标定的过程,包括:

利用基于张正友标定法的opencv库函数,对相机进行标定。

可选的,所述从所述待检测图像中提取目标物体的图像区域,得到待检测区域,包括:

利用opencv库函数,确定出所述待检测图像中包含目标物体的roi区域;

利用掩码算法,消除所述roi区域中的背景图像信息,得到所述待检测区域。

可选的,所述对所述待检测区域进行灰度均匀化处理,得到处理后图像,包括:

将所述待检测区域划分为多个子区域;

分别对每个子区域进行灰度均匀化处理,得到所述处理后图像。

可选的,对任一子区域进行灰度均匀化处理的过程,包括:

确定该子区域中像素的最大灰度值、最小灰度值和平均灰度值;

确定所述最大灰度值与所述平均灰度值之间的差值,得到第一灰度差值;

确定所述平均灰度值与所述最小灰度值之间的差值,得到第二灰度差值;

若所述第一灰度差值大于所述第二灰度差值,则利用第一灰度变换公式对该子区域内的各个像素的灰度进行变换;

若所述第一灰度差值小于或等于所述第二灰度差值,则利用第二灰度值变换公式对该子区域内的各个像素的灰度进行变换;

其中,所述第一灰度变换公式为:

gafter=gbefore*(g1/g2);

所述第二灰度变换公式为:

gafter=(gbefore-gave)*{[255-gave*(g1/g2)]/(255-gave)};

式中,gafter表示变换后的灰度,gbefore表示变换前的灰度,g1表示所述第一灰度差值,g2表示所述第二灰度差值,gave表示所述平均灰度值。

可选的,所述将所述待检测区域划分为多个子区域,包括:

通过对所述待检测区域进行网格划分的方式,将所述待检测区域划分为多个子区域。

可选的,所述利用hough变换法测量所述边缘图像中的直线之前,还包括:

从所述边缘图像中消除在网格划分过程中所引入的网格线。

第二方面,本申请公开了一种图像中直线测量装置,包括:

图像获取模块,用于在相机标定结束后,获取相机采集到的待检测图像;

区域提取模块,用于从所述待检测图像中提取目标物体的图像区域,得到待检测区域;

灰度处理模块,用于对所述待检测区域进行灰度均匀化处理,得到处理后图像;

边缘提取模块,用于利用canny边缘检测算法提取所述处理后图像中的边缘,得到边缘图像;

直线测量模块,用于利用hough变换法测量所述边缘图像中的直线,得到直线信息。

第三方面,本申请公开了一种图像中直线测量设备,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现前述图像中直线测量方法。

第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序被处理器执行时实现前述图像中直线测量方法。

可见,本申请在获取到待检测图像之后,从待检测图像中提取目标物体的图像区域,这样有利于提高后续直线测量的效率和精确度,并且,对该图像区域进行灰度均匀化处理,从而消除由于外界因素引起的灰度分布不均匀所导致的虚假边缘,为后续提升直线测量的测量精度打下重要基础。接着,利用canny边缘检测算法提取上述灰度均匀化处理后得到的图像中的边缘,得到边缘图像,在此基础上便利用hough变换法测量上述边缘图像中的直线。由上可见,本申请有效地改善了直线测量效果,既提升了直线测量效率,同时也提高了直线测量精度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的一种图像中直线测量方法流程图;

图2为本申请公开的一种具体的图像中直线测量方法流程图;

图3为本申请公开的一种图像中直线测量方法子流程图;

图4为本申请公开的一种图像中直线测量装置结构示意图;

图5为本申请公开的一种图像中直线测量设备结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种图像中直线测量方法,参见图1所示,该方法包括:

步骤s11:在相机标定结束后,获取相机采集到的待检测图像。

本实施例中,在获取相机采集的图像之前,需要对相机进行标定。本实施例可以利用基于张正友标定法的opencv库函数,对相机进行标定。其中,利用张正友标定法进行标定时,具体的实现过程如下:1、从用相机拍好的图片中任意选择2张作为标定图像,然后读取图像数据,并且上述任意2张图中可以任意旋转但是不能平行。2、对图像矩阵的内存进行分配,并计算出相机的具体参数、图像坐标值和世界坐标点的值。3、角点检测:为了选择比较合适的标定图像,要筛选输入后的图像,这样是为了提取图像模板中的全部角点信息提取。4、在保证对所有图像成功提取后,开始标定,进而获取相机内外参数。5、标定结束后,释放内存空间,防止内存泄露问题。6、最后再进行标定结果与误差的分析,多标定几次,取误差最小的情况。需要指出的是,本实施例中上述标定过程均是通过opencv的库函数来实现的。

步骤s12:从所述待检测图像中提取目标物体的图像区域,得到待检测区域。

也即,本实施例在获取到待检测图像之后,将待检测图像中与目标物体对应的图像区域提取处理,从而得到上述待检测区域,这样可以将待检测图像上与目标物体无关的区域进行去除,由此减少了后续剩下的图像处理过程的计算量,有利于提升整个直线测量过程的测量速度。

步骤s13:对所述待检测区域进行灰度均匀化处理,得到处理后图像。

本实施例中,既可以先从待检测区域上确定出灰度不均匀的子区域,然后针对这些子区域进行专门的灰度均匀化处理,也可以统一对待检测区域上的各个子区域进行灰度调整变换,以使得调整后的各个子区域之间的灰度变得均匀。本实施例通过灰度均匀化处理,能够消除由于外界因素引起的灰度分布不均匀所导致的虚假边缘,为后续提升直线测量的测量精度打下重要基础。

步骤s14:利用canny边缘检测算法提取所述处理后图像中的边缘,得到边缘图像。

步骤s15:利用hough变换法测量所述边缘图像中的直线,得到直线信息。

hough变换法是一种用于区域边界形状的描述,主要将图像的空间域转换到参数的空间域形式,使得大部分边缘检测点能够符合特定参数条件的形式,以此实现描述图像里的曲线情况的目的。hough变换基本原理首先将具有特定形状的直线或曲线通过某种方式变成空间的一点,然后把全局性质的情况变成检测局部性质的情况的问题。本实施例通过hough变换法可以测量出所述边缘图像中的直线信息,如直线的角度、长度等信息,进而通过测量出来的直线信息确定出精密仪器等目标物体的尺寸。

可见,本申请实施例在获取到待检测图像之后,从待检测图像中提取目标物体的图像区域,这样有利于提高后续直线测量的效率和精确度,并且,对该图像区域进行灰度均匀化处理,从而消除由于外界因素引起的灰度分布不均匀所导致的虚假边缘,为后续提升直线测量的测量精度打下重要基础。接着,利用canny边缘检测算法提取上述灰度均匀化处理后得到的图像中的边缘,得到边缘图像,在此基础上便利用hough变换法测量上述边缘图像中的直线。由上可见,本申请实施例有效地改善了直线测量效果,既提升了直线测量效率,同时也提高了直线测量精度。

参见图2所示,本申请实施例公开了一种具体的图像中直线测量方法,包括:

步骤s21:在相机标定结束后,获取相机采集到的待检测图像。

步骤s22:利用opencv库函数,确定出所述待检测图像中包含目标物体的roi区域。

步骤s23:利用掩码算法,消除所述roi区域中的背景图像信息,得到所述待检测区域。

步骤s24:将所述待检测区域划分为多个子区域。

其中,所述将所述待检测区域划分为多个子区域,具体可以包括:

通过对所述待检测区域进行网格划分的方式,将所述待检测区域划分为多个子区域。

步骤s25:分别对每个子区域进行灰度均匀化处理,得到所述处理后图像。

参见图3所示,对任一子区域进行灰度均匀化处理的过程,具体可以包括:

步骤s31:确定该子区域中像素的最大灰度值、最小灰度值和平均灰度值。

步骤s32:确定所述最大灰度值与所述平均灰度值之间的差值,得到第一灰度差值。

步骤s33:确定所述平均灰度值与所述最小灰度值之间的差值,得到第二灰度差值。

步骤s34:若所述第一灰度差值大于所述第二灰度差值,则利用第一灰度变换公式对该子区域内的各个像素的灰度进行变换。

步骤s35:若所述第一灰度差值小于或等于所述第二灰度差值,则利用第二灰度值变换公式对该子区域内的各个像素的灰度进行变换。

其中,所述第一灰度变换公式为:

gafter=gbefore*(g1/g2);

所述第二灰度变换公式为:

gafter=(gbefore-gave)*{[255-gave*(g1/g2)]/(255-gave)};

式中,gafter表示变换后的灰度,gbefore表示变换前的灰度,g1表示所述第一灰度差值,g2表示所述第二灰度差值,gave表示所述平均灰度值。

通过上述步骤s31至s35,可以对步骤s24中划分出来的各个子区域进行灰度均匀化处理,从而得到所述处理后图像。

步骤s26:利用canny边缘检测算法提取所述处理后图像中的边缘,得到边缘图像。

可以理解的是,步骤s26中用来对处理后图像进行边缘提取的canny边缘检测算法是固定参数后的边缘检测算法。

步骤s27:利用hough变换法测量所述边缘图像中的直线,得到直线信息。

由于本实施例在对待检测区域进行灰度均匀化处理时,引入了网格,这样会使得步骤s26的边缘检测过程会提取到由网格线构成的徐家边缘,为了避免这些虚假边缘对直线测量结果的不良影响,本实施例中,在所述利用hough变换法测量所述边缘图像中的直线之前,还可以进一步包括:

从所述边缘图像中消除在网格划分过程中所引入的网格线。具体的,可以先在原图像的左右和上下相邻的每两个网格的交接处再开一个小的长方形网格;其次在进行检测后,保留这些小的长方形的网格内检测得到的边缘,把步骤26中得到的边缘中与之位置对应的边缘用这些新的边缘代替;最后再进行消除孤立点的运算,通过上述过程可进一步改善边缘检测的效果。

相应的,本申请实施例还公开了一种图像中直线测量装置,参见图4所示,该装置包括:

图像获取模块11,用于在相机标定结束后,获取相机采集到的待检测图像;

区域提取模块12,用于从所述待检测图像中提取目标物体的图像区域,得到待检测区域;

灰度处理模块13,用于对所述待检测区域进行灰度均匀化处理,得到处理后图像;

边缘提取模块14,用于利用canny边缘检测算法提取所述处理后图像中的边缘,得到边缘图像;

直线测量模块15,用于利用hough变换法测量所述边缘图像中的直线,得到直线信息。

关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

进一步的,参见图5所示,本申请还公开了一种图像中直线测量设备20,包括处理器21和存储器22;其中,所述处理器21执行所述存储器22中保存的计算机程序时实现以下步骤:

在相机标定结束后,获取相机采集到的待检测图像;从所述待检测图像中提取目标物体的图像区域,得到待检测区域;对所述待检测区域进行灰度均匀化处理,得到处理后图像;利用canny边缘检测算法提取所述处理后图像中的边缘,得到边缘图像;利用hough变换法测量所述边缘图像中的直线,得到直线信息。

本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,具体可以实现以下步骤:利用基于张正友标定法的opencv库函数,对相机进行标定。

本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,具体可以实现以下步骤:利用opencv库函数,确定出所述待检测图像中包含目标物体的roi区域;利用掩码算法,消除所述roi区域中的背景图像信息,得到所述待检测区域。

本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,具体可以实现以下步骤:将所述待检测区域划分为多个子区域;分别对每个子区域进行灰度均匀化处理,得到所述处理后图像。

本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,具体可以实现以下步骤:确定该子区域中像素的最大灰度值、最小灰度值和平均灰度值;确定所述最大灰度值与所述平均灰度值之间的差值,得到第一灰度差值;确定所述平均灰度值与所述最小灰度值之间的差值,得到第二灰度差值;若所述第一灰度差值大于所述第二灰度差值,则利用第一灰度变换公式对该子区域内的各个像素的灰度进行变换;若所述第一灰度差值小于或等于所述第二灰度差值,则利用第二灰度值变换公式对该子区域内的各个像素的灰度进行变换;

其中,所述第一灰度变换公式为:

gafter=gbefore*(g1/g2);

所述第二灰度变换公式为:

gafter=(gbefore-gave)*{[255-gave*(g1/g2)]/(255-gave)};

式中,gafter表示变换后的灰度,gbefore表示变换前的灰度,g1表示所述第一灰度差值,g2表示所述第二灰度差值,gave表示所述平均灰度值。

本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,具体可以实现以下步骤:通过对所述待检测区域进行网格划分的方式,将所述待检测区域划分为多个子区域。

本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,具体可以实现以下步骤:从所述边缘图像中消除在网格划分过程中所引入的网格线。

进一步的,本实施例中的图像中直线测量设备20还可以包括:

相机23,用于对目标物体进行图像采集,得到待检测图像,并将待检测图像发送至处理器21进行相应的处理,也可以传输至存储器22进行保存。

输入接口24,用于获取外界输入的各种参数和各种指令,并将获取到的指令参数传输至处理器21,以对处理器21的处理流程进行控制。

通讯接口25,用于将处理器21处理后得到的各种数据传输至预设的通讯终端,以便该通讯终端的用户对处理器21得到的各种数据进行实时浏览、监视等,也可以用于获取通讯终端发送的各种参数和指令等,然后传输至处理器21。其中,通讯接口25可以是有线通讯接口,如usb接口、串行接口等,也可以是无线通讯接口,如wifi通讯接口、蓝牙通讯接口等。

显示器26,用于对处理器21得到的预测结果进行显示,包括但不限于液晶显示器、投影仪等。

电源27,用于为图像中直线测量设备20中的其他器件提供电能,以维持图像中直线测量设备20的正常工作。

进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序被处理器执行时实现前述公开的图像中直线测量方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种图像中直线测量方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1